我正在尝试制作一个PHP联系表单并将消息发送到多个地址。我从默认地址发送它,我自己的,这是一个Yahoo地址,它是SMTP服务器,带有PHPMailer。
我正在使用带有PHP 5.6的主机。我在示例脚本中使用了最多的更新设置:
session_start();
date_default_timezone_set('Etc/UTC');
require_once('../phpmailer/PHPMailerAutoload.php');
echo '<pre>';
$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = 3;
$mail->isSMTP();
$mail->Host = 'smtp.mail.yahoo.com';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'my_mail@yahoo.com';
$mail->Password = 'my_password';
$mail->setFrom('my_mail@yahoo.com', 'From Íñtërnâtiônàl form');
$mail->addAddress('target@gmail.com', 'ラーメン丸 (ramen-maru)');
$mail->isHTML(true);
$mail->Subject = '山本's demo mail (yamamoto)';
$mail->Body = 'Delicious HTML message with extra umami <em>うま味</em>';
$mail->AltBody = 'Savoury plain text note with extra umami うま味, too.';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
echo '</pre>';
die("ok\n");
它会输出以下内容:
2017-01-06 21:25:35 Connection: opening to smtp.mail.yahoo.com:587, timeout=300, options=array (
)
2017-01-06 21:25:35 Connection: opened
2017-01-06 21:25:35 SERVER -> CLIENT: 220 smtp.mail.yahoo.com ESMTP ready
2017-01-06 21:25:35 CLIENT -> SERVER: EHLO myhosting.com
2017-01-06 21:25:35 SERVER -> CLIENT: 250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 STARTTLS
2017-01-06 21:25:35 CLIENT -> SERVER: STARTTLS
2017-01-06 21:25:35 SERVER -> CLIENT: 220 2.0.0 Start TLS
2017-01-06 21:25:36 CLIENT -> SERVER: EHLO myhosting.com
2017-01-06 21:25:36 SERVER -> CLIENT: 250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 AUTH PLAIN LOGIN XOAUTH2 XYMCOOKIE
2017-01-06 21:25:36 SMTP Error: Could not authenticate.
2017-01-06 21:25:36 CLIENT -> SERVER: QUIT
2017-01-06 21:25:36 SERVER -> CLIENT: 221 2.0.0 Bye
2017-01-06 21:25:36 Connection: closed
2017-01-06 21:25:36 SMTP connect() failed.
Message could not be sent. Mailer Error: SMTP connect() failed.
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
显然,尽管使用正确的用户名和密码进行了良好的身份验证,但它还是会因身份验证错误而失败。
如果我在Yahoo帐户安全中启用了“不太安全的应用程序”,那么它确实可以正常工作,如下所示:
2017-01-06 21:44:22 Connection: opening to smtp.mail.yahoo.com:587, timeout=300, options=array ()
2017-01-06 21:44:22 Connection: opened
2017-01-06 21:44:22 SERVER -> CLIENT: 220 smtp.mail.yahoo.com ESMTP ready
2017-01-06 21:44:22 CLIENT -> SERVER: EHLO myhosting.com
2017-01-06 21:44:22 SERVER -> CLIENT: 250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 STARTTLS
2017-01-06 21:44:22 CLIENT -> SERVER: STARTTLS
2017-01-06 21:44:22 SERVER -> CLIENT: 220 2.0.0 Start TLS
2017-01-06 21:44:23 CLIENT -> SERVER: EHLO myhosting.com
2017-01-06 21:44:23 SERVER -> CLIENT: 250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 AUTH PLAIN LOGIN XOAUTH2 XYMCOOKIE
2017-01-06 21:44:23 CLIENT -> SERVER: AUTH LOGIN
2017-01-06 21:44:23 SERVER -> CLIENT: 334 ************
2017-01-06 21:44:23 CLIENT -> SERVER: ********************************
2017-01-06 21:44:23 SERVER -> CLIENT: 334 ************
2017-01-06 21:44:23 CLIENT -> SERVER: ************
2017-01-06 21:44:23 SERVER -> CLIENT: 235 2.0.0 OK
2017-01-06 21:44:23 CLIENT -> SERVER: MAIL FROM:
2017-01-06 21:44:23 SERVER -> CLIENT: 250 OK , completed
2017-01-06 21:44:23 CLIENT -> SERVER: RCPT TO:
2017-01-06 21:44:23 SERVER -> CLIENT: 250 OK , completed
2017-01-06 21:44:23 CLIENT -> SERVER: DATA
2017-01-06 21:44:23 SERVER -> CLIENT: 354 Start Mail. End with CRLF.CRLF
2017-01-06 21:44:23 CLIENT -> SERVER: Date: Fri, 6 Jan 2017 21:44:22 +0000
2017-01-06 21:44:23 CLIENT -> SERVER: To: =?UTF-8?B?44Op44O844Oh44Oz5Li4IChyYW1lbi1tYXJ1KQ==?=
2017-01-06 21:44:23 CLIENT -> SERVER: From: =?UTF-8?B?UGFyYSBJw7F0w6tybsOidGnDtG7DoGxpesOmdGnDuG4=?=
2017-01-06 21:44:23 CLIENT -> SERVER: Subject: =?UTF-8?Q?=E5=B1=B1=E6=9C=AC_(yamamoto)_presenta:_II?=
2017-01-06 21:44:23 CLIENT -> SERVER: Message-ID:
2017-01-06 21:44:23 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.21 (https://github.com/PHPMailer/PHPMailer)
2017-01-06 21:44:23 CLIENT -> SERVER: MIME-Version: 1.0
2017-01-06 21:44:23 CLIENT -> SERVER: Content-Type: multipart/alternative;
2017-01-06 21:44:23 CLIENT -> SERVER: boundary="b1_ebc9bc65ff4eee7ae217e5d602991794"
2017-01-06 21:44:23 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: This is a multi-part message in MIME format.
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: --b1_ebc9bc65ff4eee7ae217e5d602991794
2017-01-06 21:44:23 CLIENT -> SERVER: Content-Type: text/plain; charset=UTF-8
2017-01-06 21:44:23 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: Mensaje de prueba 2 con extra de umami うま味
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: --b1_ebc9bc65ff4eee7ae217e5d602991794
2017-01-06 21:44:23 CLIENT -> SERVER: Content-Type: text/html; charset=UTF-8
2017-01-06 21:44:23 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: Mensaje de prueba 2 con extra de umami うま味
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: --b1_ebc9bc65ff4eee7ae217e5d602991794--
2017-01-06 21:44:23 CLIENT -> SERVER:
2017-01-06 21:44:23 CLIENT -> SERVER: .
2017-01-06 21:44:23 SERVER -> CLIENT: 250 OK , completed
2017-01-06 21:44:23 CLIENT -> SERVER: QUIT
2017-01-06 21:44:23 SERVER -> CLIENT: 221 Service Closing transmission
2017-01-06 21:44:23 Connection: closed
Message has been sent
那么,在不启用“不太安全的应用程序”的情况下,我需要做些什么来发送邮件?
在Gmail中,有很多教程可以使用OAuth2和创建应用程序密钥。它对Yahoo的工作方式是否相同?如果是这样,我需要做些什么才能使用PHPMailerOAuth?我在哪里申请密钥?它是哪一个密钥;Flberry、YQL、双子座?
在PHPMailer 5.2中,仅支持gmail。在PHPMailer 6.0中,支持许多其他版本。6.0尚未发布,但很快就会发布,请尝试一下。
在我的邮件配置中: 但我的测试电子邮件已启用“访问不太安全的应用程序”。是否有机会向任何类型的电子邮件发送电子邮件?目前,我无法获得服务器电子邮件和他们的配置。我需要创建自己的电子邮件并集成到网站。 我的搜索给了我“两步验证”。如果我启用此功能,系统是否可以自动发送电子邮件?我找不到任何解决办法。我希望有人能帮助我。提前谢谢。
我想使用python 3.4脚本从我的gmail地址发送邮件。我使用以下代码: 如果我在我的gmail帐户中“允许不太安全的应用”,脚本就可以正常工作。然而,如果我禁用“不太安全的应用程序”,它将不起作用(我收到一封来自谷歌的警告电子邮件,其中“登录尝试被阻止”)。我想修改我的代码,以便能够在不启用此功能的情况下发送邮件。 我看了所有关于类似问题的问答,但没有找到任何有用的答案或方法。有人对此有解
谷歌正在取消不太安全的应用程序访问功能。我正在为我的网站的联系人页面使用smtp电子邮件服务。但在2022年5月30日之后,这项服务可能无法工作。 有没有其他方法可以让第三方不太安全的应用程序访问我的Gmail帐户。。? 应用程序密码能解决这个问题吗...?我怀疑设置应用程序密码也不会提供访问权限,因为谷歌表示这可能不适用于不太安全的应用程序。 那么有什么方法可以解决这个问题,以便smtp电子邮件
我正在尝试使用Java向Gmail帐户发送邮件,代码如下。我似乎做的每件事都是正确的,但我收到了身份验证失败的消息。谷歌想让我打开“不太安全的应用”功能来实现传输。 有没有一种方法可以让Gmail对Java满意,并且不会出现“打开不太安全的应用程序”的错误? 错误: 代码: 我已经做了研究,所以据我所知,代码不是问题所在,只是没有看到一个解决方案,用于不太安全的应用程序消息。 参考文献: 参考文献
我使用Android Studio和这个库;https://github.com/yesidlazaro/GmailBackground . 我正在尝试从我的android应用程序发送电子邮件。但是每当我尝试从Gmail帐户发送电子邮件时,它都不起作用。因为谷歌将我的应用程序固定为“不太安全的应用程序”并阻止它。 我不得不从gmail的安全设置中允许不太安全的应用程序。但我不想这样做。我如何解决这