带有yandex邮件的phpmailer类

时间:2014-09-18 14:19:30

标签: email phpmailer yandex

我使用phpmailer类作为我的网站表单。但 YANDEX MAIL 与phpmailer发送邮件无法正常工作。 但两天前它的工作。我尝试了所有组合。

例如:" ssl"," tls","端口更改"但是我没有工作。我的代码示例:

         $mail->IsSMTP();

         $mail->SMTPSecure = "ssl"; // or "tls" (I was try)

         $mail->Host = "smtp.yandex.com.tr"; or "ssl://smtp.yandex.com.tr"(I was try)

         $mail->Port =587; or "465,25,587"(I was try)

         $mail->SMTPAuth = true;  or "false"   

         $mail->Username = "email@mywebsite.com";

         $mail->Password = "mypassword";

         $mail->From = "email@mywebsite.com";

         $mail->FromName =$email;

         $mail->AddAddress("goto@mywebsite.com");

感谢所有答案

4 个答案:

答案 0 :(得分:2)

我也在努力解决这个问题。以下是经过验证的工作设置。但在尝试这些设置之前,您还需要登录Yandex并接受eula或https://mail.yandex.com之类的内容。

$mail->Host = 'smtp.yandex.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->SMTPOptions = array (
    'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true)
);

答案 1 :(得分:0)

我遇到了同样的问题。我找到了可行的解决方案:

$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.yandex.ru';
$mail->Port = 25;
$mail->Username = 'user@yandex.ru';
$mail->Password = 'PasswordGoesHere';
$mail->setFrom('user@yandex.ru', 'Username');
$mail->addAddress($mailToAddr);
$mail->CharSet = "Windows-1251";
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = nl2br($message);
$mail->AltBody = $message;
if (!$mail->send()) {
    echo $mail->ErrorInfo;
} else {
    // email sent
}

答案 2 :(得分:0)

就我而言,我公司的防火墙阻止了smtp。我与个人热点建立了联系,然后开始工作。

答案 3 :(得分:0)

至于现在(2021 年 6 月)要将 PHPMailerYandex 一起使用,您应该执行以下操作:

首先,准备您的 Yandex 帐户。他们有很清楚的instruction,但是是俄语。简而言之:

  1. 在“邮件 → 所有设置 → 电子邮件客户端”页面上,选中“使用邮件客户端检索您的 Yandex 邮件 - 通过 IMAP 从 imap.yandex.com 服务器”和“IMAP 授权方法 - 应用密码和 OAuth令牌”。

  2. 在“密码和授权”部分的“帐户管理”页面上,选择“启用应用密码”并创建新的应用密码。

然后您可以使用启用了 smtp.yandex.ru:465 加密和应用程序密码的 SMTP 端点 SSL,如下所示:

    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->Host = 'smtp.yandex.ru';
    $mail->Port = 465;
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // public const ENCRYPTION_SMTPS = 'ssl';
    $mail->Username = 'EMAIL@yandex.ru';
    $mail->Password = 'PASSWORD';
    $mail->setFrom('FROM_EMAIL@yandex.ru', 'FROM');
    $mail->addAddress('TO_EMAIL@yandex.ru');
    $mail->Subject = 'SUBJECT';
    $mail->Body = 'BODY';
    $mail->send();

您可以通过在“邮件→所有设置→电子邮件客户端”页面勾选“IMAP授权方式-门户密码”来避免创建应用程序密码并使用您的帐户密码,但服务不建议这样做。