Моему java-приложению Windows ConcoursBuilder необходимо отправить электронное письмо с answerTo для установки no_reply@concoursbuilder.us.Это работает нормально, если host, mailuser, password и from являются теми для моей учетной записи concoursbuilder.us.То есть электронное письмо отправляется, принимается получателем, а получатель, который нажимает кнопку «Ответить», получает сообщение автоответчика с сервера.Однако это также должно работать, если пользователь ConcoursBuilder - это кто-то, кроме меня, и использует свои собственные учетные данные электронной почты.Чтобы проверить это, я изменяю параметры своей учетной записи gmail, т.е. me123@gmail.com, pw xxxxx, хост smtp.gmail.com.Письмо будет отправлено и получено, а ответ получен по адресу no_reply @ concoursbuilder.us, , но автоответ не возвращается получателю. Почему это так?
Вот код:
public static void main(String [] args) {
String theTo = "ed_c1@efsowell.us";
String theFrom = "me123@gmail.com";
String theReplyTo = "no_reply@concoursbuilder.us";
String theSubject = " Testing MyTestSendEmail";
String theBody = "Body of eMail sent from MyTestSendMail with no_reply. mailuser me123@gmail.com";
String mailuser = "me123@gmail.com";
String mailpw = "xxxxxxxxxxx";
String host = "smtp.gmail.com";
String port = "587";
Properties prop = new Properties();
prop.put("mail.smtp.host",host);
prop.put("mail.smtp.port", port); // s.b. 587
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.starttls.enable", "true"); //TLS
Session mailsession = Session.getInstance(prop, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mailuser, mailpw);
}
});
MyTestSendMail theMyTestSendMail = new MyTestSendMail(theTo, theFrom, theReplyTo, theSubject, theBody) ;
try {
theMyTestSendMail.mySendEmail(mailsession);
} catch (SendFailedException sfex){
String msg = sfex.getMessage();
System.out.println(msg);
} catch (Exception ex) {
String msg = "Exception in main(): " + ex.getMessage();
System.out.println(msg);
}
}
} .... ....
public boolean mySendEmail(Session mailSession) throws Exception {
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));
message.setReplyTo(new Address[] { new InternetAddress(replyTo)});
InternetAddress addressTo = new InternetAddress(to);
message.setRecipient(Message.RecipientType.TO, addressTo);
message.setSubject(subject);
message.setContent(body, "text/html");
message.setText(body);
try {
Transport.send(message);
return true;
}
catch (SendFailedException sfe) {
showFailedException(sfe);
}
return false;
}