Java sendmail no_reply с автоответчиком, установленным на сервере - PullRequest
0 голосов
/ 28 сентября 2019

Моему 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;

}

...