如何在通过Amazon SES发送之前检查电子邮件是否有效

时间:2013-02-21 13:06:56

标签: amazon-web-services amazon-ses

我很擅长实施亚马逊网络服务。我正在努力实现从队列发送批量电子邮件的应用程序。在发送之前,我必须检查电子邮件并从队列中删除未经验证的电子邮件。

我的问题是:亚马逊有什么方法可以检查电子邮件是否有效吗?

3 个答案:

答案 0 :(得分:5)

您可以使用“getIdentityVerificationAttributes”操作来检查电子邮件是否有效。你可以使用它,如下所示:

var params = {
    Identities: arr // It is a required field (array of strings).
};
ses.getIdentityVerificationAttributes(params, function(err, data) {
    if(err)
        console.log(err, err.stack); // an error occurred
    else
        console.log(data);           // successful response
});

响应将是:

{ ResponseMetadata: { RequestId: '7debf2356-ddf94-1dsfe5-bdfeb-efsdfb5b653' },
  VerificationAttributes: 
   { 'abc@gmail.com': { VerificationStatus: 'Pending' },
     'xyz@gmail.com': { VerificationStatus: 'Success' } } } 
  

如果之前没有为电子邮件验证请求发送电子邮件ID,则“VerificationAttributes”对象中不存在任何键。

答案 1 :(得分:1)

从您的问题来看,目前尚不清楚您是否愿意:
1 - 避免向格式错误的电子邮件地址发送邮件;或
2 - 避免将邮件发送到未在您的AWS账户下验证的电子邮件地址。

1的答案以不同的形式传播到论坛,SO等。你要么做得很简单,也就是说,制作一个简短明了的正则表达式来验证大约80%的案例,或者你使用一个非常复杂的常规表达式(为了验证完全符合性 - 祝你好运,检查this example),检查域名是否有效但是是否正常运行,最后但并非最不重要的是,检查帐户是否有效在该领域。由你决定。我会选择一个简单的正则表达式。

2的答案可在Verifying Email Addresses in Amazon SES获得 - 亚马逊SES API和SDK支持以下操作,因此您应该在任何情况下都受到保护:

  

使用Amazon SES API

     

您还可以使用Amazon SES API管理经过验证的电子邮件地址。可以使用以下操作:

     

VerifyEmailIdentity
  ListIdentities
  DeleteIdentity
  GetIdentityVerificationAttributes

     

请注意
  上述API操作优于以下较早的API操作,这些操作自2012年5月15日发布的域验证时弃用。

     

VerifyEmailAddress
  ListVerifiedEmailAddresses
  DeleteVerifiedEmailAddress

     

您可以使用这些API操作编写自定义的前端应用程序以进行电子邮件地址验证。有关与电子邮件验证相关的API操作的完整说明,请转到Amazon Simple Email Service API Reference。

答案 2 :(得分:1)

AmazonSimpleEmailServiceClient ses= new AmazonSimpleEmailServiceClient(credentials);

    List lids = ses.listIdentities().getIdentities();
    if (lids.contains(address)) {
        //the address is verified so            
          return true;
    }