Need Configuration Settings - php

I have developed flex based application with php. My client is using Windows 2003 Server. I installed IIS Server and Php Installer into my client machine. I configured php into IIS Server and its working fine.
Query:
I wrote a mail code for sending mail to my application user. My client is using internal mail server. I want to send a mail through my application. I used smtp.gmail.com into my application and Its working perfectly. But when I am using client internal mail server. It is showing below mentioned error.
"Failed to set sender [SMTP: Invalid response code received from server. (Code: 554, response: Mail from mail-id rejected for policy reasons.]"
Please help me out to solve this query. Thanks in advance.

Well, why not to ask client's system administrator about "policy reasons"?

This should be no PHP problem but rather a problem with the SMTP server or a misconfiguration of the SMTP settings in your application. SMTP servers can be equipped with a lot of security features (I think that's what they mean with policy reasons) to allow or deny sending emails through that server from specific hosts, from specific uses, with specific authentication mechanisms, to specific domains, to specific users, etc. (list can be continued endlessly). Contact the responsible system administrator for that SMTP server and ask him what settings you need to feed into your SMTP mailer in your application.

Related

what properties should be set for my SMTP

I have setup a Website based on HTML with the exception of a contact.php page. I am hosting this website on my Rasberry Pi 3 computer on Debian flavor of linux Jesse Light. This is headless as it hosts my Portfolio website. I am using Apache2 webserver and installed sendmail as my Mail Transfer Agent (MTA). The problem is I have been spinning my wheels researching for the past week and I am stuck.
My issue is I send email from my php contact page on my live server but nothing ever arrives in my inbox after sending it. I get a mail sent message from my php script after about a minute after sending but then Nothing arrives in the inbox. I am thinking My SMTP on my php.ini is not correct. I put my website domain name FQ name. I am using Microsoft Exchange Online hosted email domain by GoDaddy. Also, anyone have any good advise on what my from / to should be set to on my SMTP configurations?
Sounds like a direct reject to me.
Some hints:
check the SMTP logs from your MS Exchange server (if a connection has been opened and potentially been refused for whatever reason)
check the PHP / Apache logs and see, whether an PHP fatal error or warning occured (mybad bad credentials or wrong port?)
I have had bad experiences with MS Exchange server and SMTP, make sure its proper setup.
check the credentials and settings from an independent client to see if they work flawless.
Hope that helps. Otherwise please provide more details and log samples.
Is your contact.php program hosted on the Godaddy server? If yes- It's not possible to send mail through Godaddy shared hosting servers using your own SMTP settings. You can only send from Godaddy's relay server when using a shared hosting plan. If you wanted to be able to send through your own SMTP servers, you'd need to be hosting with either a VPS or Dedicated Server plan.
Check maillog on your server and you will get the smtp connection timeout errors.
Let me know, in case the problem is something different- will try to address it.

Php Mail Queue Exception on Unix - Expert opinion

I am using Mail Queue to send emails in my application (https://pear.php.net/package/Mail_Queue/)
The same code works fine on windows (php version: 5.5.28) and it gives the below mentioned exception on unix (php version 5.6)
PHP User Notice 'yii\base\ErrorException' with message 'Error in sending mail: authentication failure [SMTP: STARTTLS failed (code: 220, response: Begin TLS negotiation now)]'
The mail server credentials are fine. They are same on linux as well as on windows. Code 220 means the server is ready (via http://www.serversmtp.com/en/smtp-error)
I read somewhere it is due to php5.6 and it will work fine on 5.5 but I don't think so that would be a valid answer/solution to the problem.
I guess this is because PHP 5.6 does SSL peer verification by default and PHP 5.5 doesn't. I guess if you fix a valid SSL certificate it should work, or disable ssl verify-peer in your code.
Without knowledge of Mail_Queue I don't know how to fix it without any example code.
Sending emails from EC2 instances is limited by Amazon and strictly throttled at network level. This is to prevent spamming and other abuses.
If you have a large amount of emails to send to your customers, the recommended way is to use Amazon Simple Email Service. With Amazon SES, you can send transactional email, marketing messages, or any other type of high-quality content and you only pay for what you use.
Connecting to the Amazon SES SMTP Endpoint
If you really need to send emails from an EC2 instance, you must use an Elastic IP Adress and ask Amazon's support to remove limitations on SMTP traffic from that EIP.
Alternatively I will suggest you can use Sendgrid, they are fast and accurate, provides 12000 emails per month for free as well.

My SMTP service is not sending messages to external addresses

I have a local server which host PHP applications. My applications send emails to different addresses. However, I am noticing a problem that I am unable to figure out. It send emails to internal addresses but it won't send messages to external addresses.
I also have an exchange server on the same network. so for example I have these 2 "internal domain"
domain1.com
domain2.com
if I execute this php function from my application it gets delivered with no problem
mail("name#domain1.com","Test Subject","Test message");
However, if I try sening a message to gmail, yahoo or any external domain it does not send it
mail("name#gmail.com","Test Subject","Test message");
My server is running on Windows 2008 Server R2 with PHP5.3.19 installed on it via IIS6
How Can I correct this issue?
mail() on Windows needs extra config in php.ini because Windows does not have Sendmail or anything similar.
The first is the SMTP setting which should point to your ISP's outbound server which is not necessarily the same server that you retrieve your mail from. When I worked in support there were a lot of issues like you describe because an inbound server will still accept mail, but only for the domains that are local to it.
The second is the sendmail_from setting, which is what the gimpy little mailer PHP wrote for the Windows distribution uses in every SMTP transaction regardless of what's in the headers. On *nix Sendmail will read the headers and get the From: address itself, on Windows PHP will always use what's in php.ini. If this is a "garbage" address like example#example.com or something with a non-existant domain many mail servers will reject it outright. What I recommend is to change it to something decent in PHP.ini as well as adding the following line to your mailing scripts:
ini_set('sendmail_from', $from_address);
Alternatively, just use PHPmailer since it simply works much better than PHP's horrid little mail() function.

Exchange rejecting php mail from same domain

I have an IIS server running PHP on an Apache Module. I am running a domain on it, and this domain has a seperate setup for email which uses an exchange server. When I try to send email from the website using php mail() the exchange server rejects it. I.e. the header from line is sender#this-domain.com and it is sending to receiver#this-domain.com, both are email addresses set up in the exchange, even though the sender has no direct relationship with exchange.
The emails are not getting through. We tried using a Yahoo adress in the from line but nothing. Has anyone ever come across a problem like this.
You have to either configure the exchange server to accept relay requests based on the origin ip or some transparent authorization mechanism (don't know much about IIS and Exchange and integrated windows authentication, but the good people over at http://serverfault.com do. ). Or use some mailing library that can handle smpt authentication like e.g. http://swiftmailer.org
I once ran into a problem like this which involved the Exchange server not wanting to accept anonymous connections or that it would only accept mail from certain SMTP servers. Have you checked the configuration on your Exchange server to eliminate those possibilities?

Sending mail in PHP using Exchange SMTP

I have a client that uses Exchange (although I'm not sure which version). From what I know, they do have an SMTP for their Exchange however supposedly I cannot use it since my system is on PHP+Linux. It will not work for the Exchange being on Windows licensed server. How true is it? I am trying to send the mail through SMTP and not directly to the Exchange server.
They did give the details on the SMTP and I have tried and yes, it doesn't work. I got an error 'Could not connect to SMTP host'.
What are my other options in sending mail through PHP? Been googling around and found something called WebDav. Would that be a wise choice?
EDIT>
I guess something went right overnight however it's not everything. I can (presumably) connect to the SMTP however I can't send email to other domains. I tried sending to it's own domain and it works. Checked my inbox and the email is there however if I send to Live or GMail, it doesn't work. It gives me this error:
PHPMAILER_RECIPIENTS_FAILEDemail#email.com
The email#email.com is a correct existing email. I have even tested with GMail and there's no problem in sending. Now what I would like to know is where the problem lies. Could it really be in the coding or the SMTP server?
As an extra note, I'm using Joomla 1.5.22.
They are incorrect. SMTP is a standardized protocol and has nothing to do with the operating system used from a client. Exchange has a few particular things that are somewhat odd about how it handles SMTP but they will more than likely not matetr for you.
If you're getting a 'Could not connect to SMTP host', that's a pretty fundamental issue it means one of several things:
The server is not accepting inbound SMTP from anyone
The server is not accepting inbound SMTP from your IP
There is a firewall getting in the way.
There are a lot of ways to troubleshoot this. The easiest, assuming this is a server that should be accessible to the general internet, is to, from a command prompt, run 'telnet 1.2.3.4 25' (where 1.2.3.4 is the IP where the server should be). If that connects, then see if you can run the same command from the machine where your PHP is. If not, tell the client that you can't seem to access SMTP from the outside and see if they can troubleshoot.
You could use gmail? I know you might not be using phpmailer, but the how-to should set you in the right direction.
It sounds like "they" (who I'm guessing are the sys-admin for the network you're on?) may have other ideas on you doing this though - ports could be restricted etc.

Categories