使用Java Spring电子邮件发送电子邮件

时间:2014-03-16 19:41:44

标签: java spring email error-handling

我的问题是,在下面的代码中,只要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");
}

3 个答案:

答案 0 :(得分:0)

试试这个正则表达式:

  

^ [_ A-ZA-Z0-9 - \ +] +(\ [_ A-ZA-Z0-9 - ]。+) @ [A-ZA-Z0-9 - ] +(\。 [A-ZA-Z0-9] +)(\ [A-ZA-Z] {2,})$;

http://www.mkyong.com/

答案 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();
 }