[使用Amazon SES和PHP Mailer从本地主机发送电子邮件

问题描述 投票:1回答:1

我正在开发一个PHP应用程序,试图在其中发送电子邮件以进行测试。我正在使用PHPMailer和Amazon SES。目前,我处于开发模式,因此该软件不在线,并且我正在localhost(Xampp)工作。问题是尽管我的用户名,密码和所有详细信息都是正确的,但仍未发送电子邮件。

这是我现在正在使用的以下代码。

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';

$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Host = 'email-smtp.us-east-1.amazonaws.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->IsHTML(true);
$mail->SMTPAuth = true;
$mail->Username = 'HIDDEN';
$mail->Password = 'HIDDEN';
$mail->setFrom('[email protected]', 'DateApp');
$mail->addAddress('[email protected]', 'Shreyansh');
$mail->Subject = 'This is a subject.';
$mail->Body    = 'This is a test message.';

if($mail->send()){
  echo "Mail sent!";
}else{
  echo "Error";
}

?>

由于未发送邮件,我总是收到“错误”消息。如果有人可以让我知道问题出在哪里,请多谢。是因为我在本地主机上吗?还是我必须配置php.ini文件来发送邮件?如果是,请让我知道流程。

更新

  1. 它也无法在线运行。我刚试过您可以在这里看到http://www.startdating.in/test.php

  2. 我忘了我没有在Amazon ses帐户中配置域内容。我只配置了电子邮件和SMTP服务。

将调试更改为1

来自本地主机的错误消息

2019-10-12 18:25:25 CLIENT -> SERVER: EHLO localhost
2019-10-12 18:25:26 CLIENT -> SERVER: STARTTLS
2019-10-12 18:25:27 CLIENT -> SERVER: EHLO localhost
2019-10-12 18:25:27 CLIENT -> SERVER: AUTH LOGIN
2019-10-12 18:25:27 CLIENT -> SERVER: <credentials hidden>
2019-10-12 18:25:27 CLIENT -> SERVER: <credentials hidden>
2019-10-12 18:25:27 CLIENT -> SERVER: MAIL FROM:<[email protected]>
2019-10-12 18:25:28 CLIENT -> SERVER: RCPT TO:<[email protected]>
2019-10-12 18:25:28 CLIENT -> SERVER: DATA
2019-10-12 18:25:28 CLIENT -> SERVER: Date: Sat, 12 Oct 2019 20:25:24 +0200
2019-10-12 18:25:28 CLIENT -> SERVER: To: Shreyansh <[email protected]>
2019-10-12 18:25:28 CLIENT -> SERVER: From: DateApp <[email protected]>
2019-10-12 18:25:28 CLIENT -> SERVER: Subject: This is a subject.
2019-10-12 18:25:28 CLIENT -> SERVER: Message-ID: <wOLtFTSGmh2slZxkUcYhUA4lc0sTi0UdiiDHjUzbGs@localhost>
2019-10-12 18:25:28 CLIENT -> SERVER: X-Mailer: PHPMailer 6.0.6 (https://github.com/PHPMailer/PHPMailer)
2019-10-12 18:25:28 CLIENT -> SERVER: MIME-Version: 1.0
2019-10-12 18:25:28 CLIENT -> SERVER: Content-Type: text/html; charset=iso-8859-1
2019-10-12 18:25:28 CLIENT -> SERVER:
2019-10-12 18:25:28 CLIENT -> SERVER: This is a test message.
2019-10-12 18:25:28 CLIENT -> SERVER:
2019-10-12 18:25:28 CLIENT -> SERVER: .
2019-10-12 18:25:29 SMTP ERROR: DATA END command failed: 554 Message rejected: Email address is not verified. The following identities failed the check in region US-EAST-1: [email protected]
SMTP Error: data not accepted.
Error2019-10-12 18:25:29 CLIENT -> SERVER: QUIT

来自www.stardating.in/test.php的错误消息

2019-10-12 18:25:53 SMTP ERROR: Failed to connect to server: Connection refused (111)
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Error

而且,我已经在Amazon ses帐户中配置并验证了stardating.in域名。问题仍然存在。

php amazon-web-services amazon-ses
1个回答
0
投票

您看到

SMTP错误:DATA END命令失败:554消息被拒绝:电子邮件地址未验证。以下身份未能通过区域US-EAST-1的检查:[email protected]错误:数据不被接受。

AWS SES“沙盒模式”使您只能从经过验证的电子邮件地址发送电子邮件或向经过验证的电子邮件地址发送电子邮件。完整的限制列表在这里:

您只能将邮件发送到经过验证的电子邮件地址和域,或者发送到Amazon SES邮箱模拟器。

您只能从经过验证的电子邮件地址和域发送邮件。

注意

即使您的帐户不在沙箱中,此限制也适用。

[您每24小时最多可以发送200条消息。

您每秒最多可以发送1条消息。

要退出“沙盒模式”,请向他们发送票证

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html

© www.soinside.com 2019 - 2024. All rights reserved.