2013-02-21 75 views
3

我剛剛實施亞馬遜網絡服務。我正在實施一個應用程序,用於從隊列發送批量電子郵件。在發送之前,我必須檢查電子郵件並從隊列中刪除未經驗證的電子郵件。如何在通過亞馬遜SES發送之前檢查電子郵件是否有效

我的問題是:亞馬遜有沒有可用的方法來檢查電子郵件是否有效?

+0

您可以使用正則表達式將它在隊列或該地址發送郵件之前驗證電子郵件地址。 – 2013-02-21 13:13:30

回答

0

從您的問題,目前還不清楚您是否想要:
1 - 避免發送郵件到畸形的電子郵件地址;或者
2 - 避免將郵件發送到未在您的AWS賬戶下驗證的電子郵件地址。

1的答案以論壇,SO等不同形式傳播。您要麼簡單地完成這項工作,即製作一個簡短而明確的正則表達式,可以驗證大約80%的案例,或者使用非常複雜的正則表達式(爲了驗證整個合規性 - 祝您好運,請檢查this example),檢查域是否不僅有效,而且還在運行,最後但並非最不重要的一點是,檢查該域下的帳戶是否有效。由你決定。我會用一個簡單的正則表達式去。

2回答,請Verifying Email Addresses in Amazon SES - 亞馬遜SES API和SDK支持下面的操作,所以你應該在任何情況下覆蓋:

使用亞馬遜SES API

你還可以使用Amazon SES API管理已驗證的電子郵件地址。以下操作可用:

VerifyEmailIdentity
ListIdentities
DeleteIdentity
GetIdentityVerificationAttributes


的API上述行動是最好如下舊的API操作,這是過時的2012年5月15日的發佈域名驗證。

VerifyEmailAddress
ListVerifiedEmailAddresses
DeleteVerifiedEmailAddress

您可以使用這些API操作編寫電子郵件地址驗證定製的前端應用程序。有關與電子郵件驗證相關的API操作的完整說明,請轉至Amazon Simple Email Service API參考。

3

您可以使用「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: 
    { '[email protected]': { VerificationStatus: 'Pending' }, 
    '[email protected]': { VerificationStatus: 'Success' } } } 

如果有電子郵件ID未電子郵件驗證請求之前發送的,再有就是'VerificationAttributes'對象中沒有任何鍵。

1
AmazonSimpleEmailServiceClient ses= new AmazonSimpleEmailServiceClient(credentials); 

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