mail(): SMTP server response: 550 The address is not valid error on hmailserver

I am getting this error despite configuring php.ini to a valid send_from address. I know it is valid because it works when I send it from squirrel mail but when sending mail in php it will just not work. the invalid address presumably refers to the send_from address. so I can't see how it can think it's wrong. here is the php code:

$email="[email protected]";
$subject = "Your New Password";
$from="[email protected]";
$message = "Your new password is as follows:

xxxxxxxxxxxxxxxxxxxxxxxxxxx

This email was automatically generated.";

      if(!mail($email, $subject,$message,$from)){
         echo ("error");
      }else echo "success";

and in php.ini:

SMTP = localhost

sendmail_from = [email protected]

550 Delivery is not allowed to this address

This error means that the sender is trying to send an email to an address which he is not allowed to send to. This message is generated after hMailServer has checked the IP range settings. As an example, the default IP range configuration does not allow external users to send messages to other external users. This is to prevent people from using your server to send spam. So if an external user tries to send a message to another external user, he will get this message.

That is the meaning of the error you are getting. This is from the hMailServer Documentation.

Can you try if the following will work?

<?php
mail('[email protected]','Test Email','This is a test email.',"From: [email protected]");
?>

If it doesn't work, then it's probably due to a misconfiguration in your hMailServer and you would need to check your hMailServer Logs.


The 4th parameter of the mail() function is not plain "from". In your code, you are only passing the email address without "From: " - The fourth parameter is for additional mail headers, so you have to format it like this:

mail($email, $subject,$message,"From: [email protected]\r\nX-Mailer: PHP");

I added another header as an example.


Try this, worked for me:

ini_set("sendmail_from", "[email protected]");