我正在尝试使用 php mailer 从我的 gmail 帐户发送邮件。我知道为了使用 php 邮件程序发送邮件,我们需要从我们的 gmail 帐户设置中启用“安全性较低的应用程序”。还有一个选项,在不启用“不太安全的应用程序”的情况下,我们可以使用“应用程序密码”,通过启用两步验证从不太安全的应用程序发送邮件。但问题是使用“APP 密码”,我无法从 php 邮件程序发送邮件,但出现用户名和密码不被接受的错误。我搜索并发现,我们无法使用“应用程序密码”从安全性较低的应用程序发送邮件。从此链接中找到https://support.google.com/accounts/answer/185833?hl=en&authuser=5我使用以下 php 邮件程序代码发送邮件:<?php// Import PHPMailer classes into the global namespace// These must be at the top of your script, not inside a functionuse PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;// Load Composer's autoloaderrequire 'vendor/autoload.php';// Instantiation and passing `true` enables exceptions$mail = new PHPMailer(true);try {//Server settings$mail->SMTPDebug = 2; // Enable verbose debug output$mail->isSMTP(); // Set mailer to use SMTP$mail->Host = 'ssl://smtp.gmail.com'; // Specify main and backup SMTP servers$mail->SMTPAuth = true; // Enable SMTP authentication$mail->Username = username;$mail->Password = password;$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted$mail->Port = 465;//Recipients$mail->setFrom('test@gmail.com', 'Test');$mail->addAddress('test1@gmail.com', 'Test1'); // Add a recipient$mail->addAddress('test2@gmail.com'); // Name is optional$mail->addReplyTo('test@gmail.com', 'Test');// Content$mail->isHTML(true); // Set email format to HTML$mail->Subject = 'Here is the subject';$mail->Body = 'This is the HTML message body <b>in bold!</b>';$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';$mail->send();echo 'Message has been sent';} 请给出不启用“不太安全的应用程序”和使用gmail“应用程序密码”发送邮件的解决方案
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
如果您要避免这些事情,剩下的唯一选择是使用 PHPMailer 支持的 XOAUTH2 身份验证。配置起来既困难又复杂,并且可能会发生变化,因此与其将代码粘贴到此处以使其过时,不如让您参考源代码。将您的代码基于PHPMailer 提供的 gmail OAuth 示例,并使用项目 wiki 中的 PHPMailer gmail xoauth2 指南配置它并获取凭据。
- 2 回答
- 0 关注
- 219 浏览
添加回答
举报
0/150
提交
取消