1

我正在为我的网站表单使用 phpmailer 类。但是带有 phpmailer 的YANDEX MAIL发送邮件不起作用。但是两天前它起作用了。我尝试了所有组合。

例如:“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

4 回答 4

5

我也在为此苦苦挣扎。以下是经过验证的工作设置。但在尝试这些设置之前,您还需要登录 Yandex 并通过https://mail.yandex.com接受 eula 或其他内容。

$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)
);
于 2018-03-29T22:36:19.780 回答
1

就我而言,我公司的防火墙阻止了 smtp。我连接了我的个人热点然后它起作用了。

于 2018-09-18T07:58:50.120 回答
0

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

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

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

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

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

    $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授权方式-门户密码”来避免创建应用程序密码并使用您的帐户密码,但服务不建议这样做。

于 2021-06-23T02:21:59.950 回答
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
}
于 2016-10-20T09:34:21.147 回答