James Cushing James Cushing - 1 year ago 165
PHP Question

Mail not sending with PHPMailer over SSL using SMTP

I am trying to use PHPMailer to send e-mails over SMTP but so far have had no luck. I've gone through a number of SO questions, PHPMailer tutorials and forum posts but still cannot get it to work. I'll document as many of my failed attempts as I can remember to save time, but firstly here is the code I am using:


$mail = new PHPMailer();

$name = $_POST["name"];
$guests = $_POST["guests"];
$time = $_POST["time"];

$message = "<h1>".$name." has booked a table for ".$guests." at ".$time."</h1>";

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "ssl://smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 26; // set the SMTP port for the GMAIL server
$mail->Username = "myEmail@gmail.com"; // SMTP account username
$mail->Password = "myPassword"; // SMTP account password
$mail->SetFrom('myEmail@gmail.com', 'James Cushing');
$mail->AddReplyTo("myEmail@gmail.com","James Cushing");
$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$address = "myOtherEmail@me.com";
$mail->AddAddress($address, "James Cushing");

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";

Firstly, when I run this code now I get two different errors. On my local server I get the error:

SMTP -> ERROR: Failed to connect to server: Operation timed out (60)

The following From address failed: myEmail@gmail.com : Called Mail() without being connected

Mailer Error: The following From address failed: myEmail@gmail.com : Called Mail() without being connected

I get moreorless the same error running the same code on my web server, but the first line is:

SMTP -> ERROR: Failed to connect to server: Network is unreachable (101)

Obviously it's worth pointing out that I'm not using the literal "myEmail@gmail.com" but I've substituted my own email out for this post.

Things I've tried

- Using the iCloud SMTP server

- Using a different port

- Enabling the OpenSSL extension in my php.ini file

- Copying code from various PHPMailer examples

- Using Google's "DisplayUnlockCaptcha" system to enable connections

- Sending to and from different addresses
- Removing the "@gmail.com" from the Username property
- A number of other things I can't remember

This has now been driving me mad for about a day, so if anyone can solve it they will be a hero.


Answer Source
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "myemail@gmail.com";
$mail->Password = "**********";
$mail->Port = "465";

That is a working configuration.

try to replace what you have

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download