适用于Amazon Simple Email Service的邮箱模拟器

时间:2018-11-21 16:52:39

标签: php amazon-web-services email amazon-ses

如AWS Blog中所述,

  

今天,我们推出了Amazon SES邮箱模拟器,使您可以测试应用程序而不会影响发送配额或驱动该应用程序的退信和投诉指标。 您现在可以将测试电子邮件发送到邮箱模拟器托管的特定电子邮件地址。每个地址都有一个特定的,已定义的回复。即使您仍在Amazon SES沙箱中运行,也可以将电子邮件发送到这些新地址。

我正在使用PHPMailer来测试下面的邮箱模拟器代码

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';
$emp_email="bounce@simulator.amazonses.com";
$emp_name="testbounce";
$mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 0;                                 // Disable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'email-smtp.us-west-2.amazonaws.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'sesusername';                 // SMTP username
    $mail->Password =  'sespassword';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to 

    $mail->From = 'testmail@example.com';
    $mail->FromName = "testname";
    $mail->addAddress($emp_email,$emp_name);

    //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';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

我收到错误消息

  

无法发送消息。 Mailer错误:SMTP错误:不接受数据。SMTP服务器错误:DATA END命令失败详细信息:邮件被拒绝:电子邮件地址未验证。以下身份未能通过区域US-WEST-2的检查:testname,testmail@example.com SMTP代码:554

我知道要使用SES发送电子邮件,我们需要以常规方式验证发件人邮件ID。

那么如何配置模拟器来测试新的电子邮件ID。

1 个答案:

答案 0 :(得分:1)

您发送的所有地址都必须经过验证。您可以通过控制台或API来执行此操作。 See the documentation。您也可以verify an entire domain