9

我刚开始实施 Amazon Web 服务。我正在实现一个从队列发送批量电子邮件的应用程序。在发送之前,我必须检查电子邮件并从队列中删除未经验证的电子邮件。

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

4

3 回答 3

8

您可以使用“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,则“验证属性”对象中不存在密钥。

于 2016-02-11T08:01:27.977 回答
7

从您的问题来看,您是否要:
1-避免向格式错误的电子邮件地址发送消息;或
2-避免向未在您的 AWS 账户下验证的电子邮件地址发送消息。

1 的答案在论坛、SO 等中以不同的形式传播。你要么做简单,即制作一个简短而清晰的正则表达式来验证大约 80% 的情况,或者你使用一个非常复杂的正则表达式(在为了验证完全合规性 - 祝你好运,检查这个例子),检查域是否不仅有效而且正常运行,最后但同样重要的是,检查帐户在该域下是否有效。由你决定。我会用一个简单的正则表达式。

2 的答案可在验证 Amazon SES 中的电子邮件地址中找到——Amazon SES API 和开发工具包支持以下操作,因此在任何情况下都应该涵盖您:

使用 Amazon SES API

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

VerifyEmailIdentity
ListIdentities
DeleteIdentity
GetIdentityVerificationAttributes

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

验证
电子邮件地址列表验证电子邮件地址删除验证电子邮件
地址

您可以使用这些 API 操作来编写用于电子邮件地址验证的自定义前端应用程序。有关与电子邮件验证相关的 API 操作的完整描述,请访问 Amazon Simple Email Service API Reference。

于 2013-02-21T15:34:59.530 回答
1
AmazonSimpleEmailServiceClient ses= new AmazonSimpleEmailServiceClient(credentials);

    List lids = ses.listIdentities().getIdentities();
    if (lids.contains(address)) {
        //the address is verified so            
          return true;
    }
于 2017-07-24T10:31:40.870 回答