My programmar bolted, so when my host disabled sending mails from "nobody", I was stranded. My scripts couldn't send mails again. It took me days of research and trials to get the right code to send mails from PHP with SMTP Authentication. it's easy, just make changes and replace the dumb mail code with the one I'll paste below in red!.
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: * Make sure the PEAR Mail package is installed.
o Typically, in particular with PHP 4 or later, this will have already been done for you. Just give it a try.
* Adapt the example below for your needs. Make sure you change the following variables at least:
o from: the email address from which you want the message to be sent.
o to: the recipient's email address and name.
o host: your outgoing SMTP server name.
o username: the SMTP user name (typically the same as the user name used to retrieve mail).
o password: the password for SMTP authentication.
Sending Mail from PHP Using SMTP Authentication - Example <?php
require_once "Mail.php";
$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "mail.example.com";
$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("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>Sending Mail from PHP Using SMTP Authentication and SSL Encryption - Example <?php
require_once "Mail.php";
$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "ssl://mail.example.com";
$port = "465";
$username = "smtp_username";
$password = "smtp_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("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>