I am trying to send an email through php using the mail() function but getting the following error:

Warning: mail() [function.mail]: SMTP server response: my-server-name-here [my-ip-address-here] is currently not 550-permitted to relay through this server. Perhaps you have not logged into 550-the pop/imap server in the last 30 minutes or do not have SMTP 550 Authentication turned on in your email client.

My PHP Code is:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

FYI: I am running this code on windows 2003 server and i can send email using Horde.

What I am guessing is I need to add smtp authentication in my php code, so If you can tell me what is the syntax that can help me.

Does anyone know how to overcome this problem?


11 Years
Discussion Span
Last Post by johny_d

I may be wrong, but I think there is no way you can authenticate to a mail server using just the mail() function in php.
You should set your server to allow emails from localhost/ local IP without authentication.
I use phpMailer class from here: http://phpmailer.sourceforge.net/
It is open source and has a lot of functionality, including authentication on smtp servers.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.