1
我正嘗試構建一個應用程序,以將大量報告電子郵件發送到具有各種主機的許多地址。我正在使用Javamail,我仍然在學習它。JavaMail針對未發送的電子郵件獲取消息(至Gmail或Ymail)
我找到了一個例子,並嘗試發送電子郵件與我的公司服務器作爲主機(讓我們說xyz公司)。
這裏是示例代碼
package mailexample;
import javax.mail.*;
import javax.mail.internet.*;
public class MailExample {
public static void send(String smtpHost, int smtpPort,
String from, String to,
String subject, String content) {
try {
java.util.Properties props = new java.util.Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.port", ""+smtpPort);
Session session = Session.getDefaultInstance(props, null);
//Store store = session.getStore();
//Folder folder = store.getFolder("INBOX");
//System.out.println(folder.getMessage(1));
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setSubject(subject);
msg.setText(content);
Transport.send(msg);
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
try {
send("mail.xyz.ac", 25, "[email protected]", "[email protected]",
"title", "content");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
它工作正常,我得到一個錯誤堆棧跟蹤時的地址是無效的。 但是,只有當我發送電子郵件到相同的服務器/主機是mail.xyz.ac時纔會發生這種情況。
如果我發送電子郵件給一些隨機的gmail或ymail地址(可能不存在),我的應用程序返回成功消息,但之後沒有任何事情發生,發件人收件箱中只有一條消息(如Gmail中的郵件程序守護程序)這表示它沒有交付。
問題是,我需要將該消息存儲在我的數據庫中以獲取進一步的通知。 是否可以從我的應用程序獲取該消息?
所以答案是我們可以,但不能保證它會起作用。而我仍然不明白如何實現它:( – Salingga 2012-08-03 02:46:24