我的问题是,在下面的代码中,只要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");
}
答案 0 :(得分:0)
试试这个正则表达式:
^ [_ A-ZA-Z0-9 - \ +] +(\ [_ A-ZA-Z0-9 - ]。+) @ [A-ZA-Z0-9 - ] +(\。 [A-ZA-Z0-9] +)(\ [A-ZA-Z] {2,})$;
答案 1 :(得分:0)
对于一般检查电子邮件地址是否有效(格式的静态验证),您可以使用例如apache commons(参见What is the best Java email address validation method?)
如果存在电子邮件地址进行验证,通常的方法是向该地址发送一封电子邮件,其中包含双重选择令牌,用户需要点击,以确认他是邮件帐户的所有者。 / p>
答案 2 :(得分:0)
你能做的是:
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库来完成此操作。
public Record [] lookupMxRecords(String domain)抛出TextParseException
{
final Lookup dnsLookup = new Lookup(domain, Type.MX);
return dnsLookup.run();
}