[英]sending email using Java Spring email
我的問題是,在下面的代碼,只要to
有@
它沒有錯誤! 例如,如果我輸入x@y
,則沒有錯誤! 電子郵件地址不存在或域名不正確時,如何顯示錯誤?
public void sendMail(String content, String to, String subject) {
MimeMessage message = mailSender.createMimeMessage();
try{
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(simpleMailMessage.getFrom());
helper.setTo(to.split(","));
helper.setSubject(subject);
helper.setText(String.format(simpleMailMessage.getText(), content));
}catch (MessagingException e) {
e.printStackTrace();
}
mailSender.send(message);
System.out.rpint("email was sent to "+to+" successfully");
}
試試這個正則表達式:
^ [_ A-Za-z0-9-\\ +] +(\\。[_ A-Za-z0-9-] +) @ [A-Za-z0-9-] +(\\。[A-Za-z0 -9] +) (\\。[A-Za-z] {2,})$;
對於一般檢查電子郵件地址是否有效(格式的靜態驗證),您可以使用例如apache commons(請參閱什么是最佳的Java電子郵件地址驗證方法? )
為了驗證是否存在電子郵件地址,通常的方法是向用戶發送一封帶有雙重選擇令牌的電子郵件到該地址,該電子郵件需要用戶單擊以確認他是該郵件帳戶的所有者。
您可以做的是:
1.使用正則表達式驗證輸入: ^ [_ A-Za-z0-9-+] +(。[_ A-Za-z0-9-] +) @ [A-Za-z0-9-] +(。[A-Za-z0-9- +) (。[A-Za-z] {2,})$
2.檢查MX記錄: http : //webtools.live2support.com/nt_mxrecords.php
在Java中,您可以使用dnsjava庫執行此操作。
公共Record [] lookupMxRecords(String domain)拋出TextParseException
{
final Lookup dnsLookup = new Lookup(domain, Type.MX);
return dnsLookup.run();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.