首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java mail api发送邮件成功与否

java mail api发送邮件成功与否
EN

Stack Overflow用户
提问于 2015-06-04 08:19:02
回答 3查看 11K关注 0票数 0

我已经在下面写了一个通过java mail api发送邮件的程序,现在我的查询是为了处理异常情况,也让我说,如果邮件没有发送,那么我必须da一些东西,如果邮件被发送,我必须在cas中做一些其他的事情,现在请告知java mail api在发送邮件时是否证明了任何参数,我们可以检查邮件是否成功发送,因为我已经在我的程序中启用了调试。

代码语言:javascript
复制
emailSession.setDebug(true);

请告知java mail api返回的参数是什么,我们可以通过这个参数来检查邮件是否发送成功。

下面是我的java mail api的简单程序。

代码语言:javascript
复制
public class EmailTest {

    public static void main(String[] args) {

        String mailSmtpHost = "cakelycakes.com";

        String mailTo = "bigcakes@cakelycakes.com";
        String mailCc = "littlecakes@cakelycakes.com";
        String mailFrom = "me@here.there.everywhere";
        String mailSubject = "Email from Java";
        String mailText = "This is an email from Java";

        sendEmail(mailTo, mailCc, mailFrom, mailSubject, mailText, mailSmtpHost);
    }

    public static void sendEmail(String to, String cc, String from, String subject, String text, String smtpHost) {
        try {
            Properties properties = new Properties();
            properties.put("mail.smtp.host", smtpHost);
            Session emailSession = Session.getDefaultInstance(properties);

            Message emailMessage = new MimeMessage(emailSession);
            emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            emailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress(cc));
            emailMessage.setFrom(new InternetAddress(from));
            emailMessage.setSubject(subject);
            emailMessage.setText(text);

            emailSession.setDebug(true);

            Transport.send(emailMessage);
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}
EN

回答 3

Stack Overflow用户

发布于 2015-06-04 11:04:20

我想你正在寻找这些JavaMail常见问题解答条目:

  • If I send a message to a bad address, why don't I get a SendFailedException or TransportEvent indicating that the address is bad?
  • When a message can't be delivered, a failure message is returned. How can I detect these "bounced" messages?
票数 7
EN

Stack Overflow用户

发布于 2015-06-04 08:32:25

嗯,有一种方法可以把所有的电子邮件都发送出去。

对于前-

代码语言:javascript
复制
      //create the POP3 store object and connect with the pop server
  Store store = emailSession.getStore("pop3s");

  store.connect(host, user, password);

  //create the folder object and open it
  Folder emailFolder = store.getFolder("INBOX");
  emailFolder.open(Folder.READ_ONLY);

  // retrieve the messages from the folder in an array and print it
  Message[] messages = emailFolder.getMessages();
  System.out.println("messages.length---" + messages.length);

  for (int i = 0, n = messages.length; i < n; i++) {
     Message message = messages[i];
     System.out.println("---------------------------------");
     System.out.println("Email Number " + (i + 1));
     System.out.println("Subject: " + message.getSubject());
     System.out.println("From: " + message.getFrom()[0]);
     System.out.println("Text: " + message.getContent().toString());

  }

  //close the store and folder objects
  emailFolder.close(false);
  store.close();

  } catch (NoSuchProviderException e) {
     e.printStackTrace();
  } catch (MessagingException e) {
     e.printStackTrace();
  } catch (Exception e) {
     e.printStackTrace();
  }

}

您可以通过比较messag对象的内容来检查邮件是否已发送。

我希望它能对你有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2017-06-01 11:53:20

我不确定这是不是你需要的。但是您可以像这样检查SMTP服务器的返回码:

代码语言:javascript
复制
// get your configuration (host, port, user, pwd)
...
// initialize your message
...

SMTPTransport transport = (SMTPTransport) session.getTransport("smtp");
transport.connect(host, port, user, pwd);
transport.sendMessage(message, message.getAllRecipients());
// you can get SMTP return code here
int code = transport.getLastReturnCode();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30632960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档