[英]Sending JavaMail from Multiple Email Accounts
我有一個程序,我有許多用戶,每個用戶可以從不同的電子郵件帳戶發送電子郵件。
當我嘗試使用JavaMail發送電子郵件時。 它們總是由首先發送電子郵件的用戶的帳戶發送出去。
user1 = new User("dummy-email@gmail.com", "dumpass12");
user2 = new User("second-dummy@gmail.com", "secondpass12");
user1.sendMail(toAddress, subject, body);
user2.sendMail(toAddress, subject, body);
現在,當我做這樣的事情時,第二個用戶將發送一條消息,但它將作為user1來自SAME郵箱(即兩條消息都來自dummy-email@gmail.com)。
有人可以向我解釋為什么會這樣嗎? 我必須以某種方式關閉連接嗎? 如何發送這兩封電子郵件並讓它們來自不同的帳戶? 請幫我。
這是我的代碼,它實際上發送連接到用戶的Gmail帳戶的電子郵件。
public void sendMail(String toAddress, String subject, String body){
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{ return new PasswordAuthentication(getUsername(),getPassword()); }
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(getUsername()));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(toAddress));
message.setSubject(subject);
message.setContent(body, "text/html");
Transport.send(message);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
用Session.getInstance()替換Session.getDefaultInstance()。 要了解原因,請仔細閱讀這些方法的javadoc。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.