Mail sending from PHP mail function is now restricted to local email address only. you need to add "-f return_email_address" as 5th parameter in mail function to get php to set the correct return email address. To send email to external email addresses, use SMTP authentication code in PHP mail function.
Send Email from a PHP Script Using SMTP Authentication
To connect to an outgoing SMTP server from a PHP script using SMTP authentication and send an email:
- Adapt the example below for your needs. Make sure you change the following variables at least:
- from: the email address from which you want the message to be sent.
- to: the recipient's email address and name.
- host: your outgoing SMTP server name.
- username: the SMTP user name (typically the same as the user name used to retrieve mail).
- password: the password for SMTP authentication.
Sending Mail from PHP Using SMTP Authentication - Example
require_once "Mail.php";
$from = "Sender ";
$to = "Recipient ";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "localhost";
$port = "25";
$username = "smtp_username";
$password = "smtp_password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("" . $mail->getMessage() . "
");
} else {
echo("Message successfully sent!
");
}
?>
Sending Mail from PHP Using SMTP Authentication through GMAIL Account - Example
require_once "Mail.php";
$from = "Sender Name ";
$to = "Recepient Name ";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "gmail_email_address";
$password = "gmail_password";$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject);
$smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password));$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("" . $mail->getMessage() . "
");
} else {
echo("Message successfully sent!
");
}
?>
Thanks.
Administrator
Wednesday, February 3, 2010