phpmailer with yahoo not working under any setting
Solution 1
The correct is tls, you have a spell mistake:
$mail->SMTPSecure = 'tls'
Solution 2
2020 - Google brought me here for something similar.
Finally got phpmailer working with yahoo.
My Findings:
* Ports -> Both ssl/465 and tls/587 work with Yahoo. You dont have to
worry about that.
* From Address -> Cannot be something arbitrary, just use your
yahoo account email here
* ReplyTo Address -> This too must be a valid yahoo account
or you may leave this blank.
And ...
for programmatic usage of yahoo with phpmailer, you need to use another passwd ( not the password that you use to login manually via the web - got this tip from a non stackoverflow site, maybe expert xchange? ). This password is called the App Password. You have to generate it from inside your account.
Account Info -> Account Settings -> Manage Your App Passwords
-> Select Other App -> Key in 'AutoMailer'
or anything you like and generate the passwd - Its a 4 word passwd.
Use this passwd in your phpmailer script. Everything should be fine now.
Solution 3
The yahoo SMTP host is: smtp.mail.yahoo.fr, the port: 465 and SSL is required.
So with PHPMailer:
$mail->Host = "smtp.mail.yahoo.fr, ";
$mail->Username = "[email protected]";
$mail->Password = "youryahoopw";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
user3262344
Updated on June 04, 2022Comments
-
user3262344 almost 2 years
so i have been working with gmail and using php mailer and it was working fine.
i tried to do the same with yahoo mail but it doent seem to work.
i have tried various ports and settings but it isnt working.
here is the code:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>PHPMailer - GMail SMTP test</title> </head> <body> <?php //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that date_default_timezone_set('Etc/UTC'); require 'phpmailer/PHPMailerAutoload.php'; //Create a new PHPMailer instance $mail = new PHPMailer(); //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 2; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = 'smtp.mail.yahoo.com'; //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission $mail->Port = 587; //995 and 465 port tried but not working //Set the encryption system to use - ssl (deprecated) or tls $mail->SMTPSecure = 'tsl';//only ssl tried not working //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication - use full email address for gmail $mail->Username = "[email protected]"; //Password to use for SMTP authentication $mail->Password = "sender_pass"; //Set who the message is to be sent from $mail->setFrom('[email protected]', 'sender_name'); //Set who the message is to be sent to $mail->addAddress('[email protected]', 'receiver_name'); //Set the subject line $mail->Subject = 'PHPMailer YMail SMTP test'; $mail->msgHTML(file_get_contents('phpmailer/examples/contents.html'), dirname(__FILE__)); $mail->AltBody = 'This is a plain-text message body'; $mail->addAttachment('phpmailer/examples/images/phpmailer_mini.png'); //send the message, check for errors if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } ?> </body> </html>
and i get the following error:
SERVER -> CLIENT: 220 smtp.mail.yahoo.com ESMTP ready CLIENT -> SERVER: EHLO localhost CLIENT -> SERVER: AUTH LOGIN SERVER -> CLIENT: 530 5.7.0 Must issue a STARTTLS command first CLIENT -> SERVER: QUIT SERVER -> CLIENT: 221 2.0.0 Bye SMTP connect() failed. Mailer Error: SMTP connect() failed.