PHP mail() and SMTP Authentication

PHP mail() and SMTP Authentication

Part of what makes the PHP mail() function is so simple is its lack of flexibility. Most importantly and frustratingly, the stock mail() does not usually allow you to use the SMTP server of your choice, and it does not support SMTP authentication, required by many a mail server today, at all.

Fortunately, overcoming PHP's built-in shortcomings need not be difficult, complicated or painful either. For most email uses, the free PEAR Mail package offers all the power and flexibility needed, and it authenticates with your desired outgoing mail server, too. For enhanced security, secure SSL connections are supported.
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.
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:
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
++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
ini_set('include_path', '/home/username/php');
require_once "Mail.php";

$from = "Sandra Sender ";
$to = "Ramona Recipient ";
$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("

" . $mail->getMessage() . "

");
} else {
echo("

Message successfully sent!

");
}
?>
++++++++++++++++++++++++++++++++++++++++++++++++++++





Sending Mail from PHP Using SMTP Authentication and SSL Encryption - Example

++++++++++++++++++++++++++++++++++++++++++++++++++++

<?php

ini_set('include_path', '/home/username/php'); 
require_once "Mail.php";

$from = "Sandra Sender ";
$to = "Ramona Recipient ";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "smtp.gmail.com";
$port = "587";
$username = "email";
$password = "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!

");
}
?>

 

++++++++++++++++++++++++++++++++++++++++++++++++++++

Was this answer helpful?

 Print this Article

Also Read

Outlook: Your POP3 Server Has Not Responded or TCP/IP Error

When you attempt to connect to a Post Office Protocol (POP3)or Simple Mail Transport Protocol...

Outlook: Error 0x800ccc0d or 0x800ccc0f When Receiving and Sending E-Mail

When you try to send and receive e-mail, you may receive one of the following error messages:The...

Outlook: Error Message: 0x800CCC0B

First try restarting your computer. If the error persists try removing the mail account from your...

How to get SMTP Credentials from cPanel ?

Once you have opened the cPanel web interface find the Mail section. Click Email Accounts....

Server Error 0x800CCC90, Error Number 0x900CCC92

There are many reasons for the above error. Make sure you are...

Powered by WHMCompleteSolution