1
我正嘗試使用以下方法發送電子郵件。它工作正常,但我面臨着一個問題。 我想使用不同的「發件人」地址,然後使用我用於Gmail身份驗證的地址。 所以在下面的代碼中,我將「message.setfrom」設置爲[email protected],但仍然在收件人收到電子郵件時,發件人地址爲[email protected]。如何在javamail中設置正確的電子郵件地址?
請幫助我確定我在這裏做錯了什麼,以及如何將地址正確設置爲「[email protected]」。 感謝您的幫助! 謝謝!
private void sendMail(String textBody, String subject) {
try {
final String messageSender = "[email protected]";
final String pass = "pass";
/** get my properties **/
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.debug", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.port", "587");
/** get default session object **/
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(messageSender, pass);
}
});
MimeMessage message = new MimeMessage(session);
String[] to = {"[email protected]"};
InternetAddress[] addressTo = new InternetAddress[to.length];
message.setRecipients(MimeMessage.RecipientType.TO, addressTo);
message.setSubject(subject);
BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
messageBodyPart.setText(textBody);
// Create a multipart message
Multipart multipart = new MimeMultipart();
// Set text message part
multipart.addBodyPart(messageBodyPart);
// Send the complete message parts
message.setContent(multipart);
message.setFrom(new InternetAddress("[email protected]"));
//send message
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
謝謝!我還添加了回覆,回覆功能正常。所以它是一個Gmail的限制。 :(可能是我會切換到雅虎然後。 – dev123