2015-08-06 5 views
0

У меня есть почтовый сервер mail.example.com по smtp. Попытка отправить электронную почту с этим, и почтовый сервер отправит почту правильно.Получение Отказов электронной почты на другой адрес электронной почты

Но если письмо отскакивает, я хочу, чтобы они читали на другом адресе электронной почты, то есть на одном адресе gmail. Поэтому для этого я пробовал это делать

SMTPMessage sMTPMessage = new SMTPMessage(mailSession); 

sMTPMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); 
sMTPMessage.setFrom(new InternetAddress(from)); 
sMTPMessage.setSubject(subject); 
sMTPMessage.setContent(body, contentType); 
sMTPMessage.setEnvelopeFrom(bounceAddr); 


SMTPTransport smtpTrans = new SMTPTransport(mailSession, new URLName("smtp", smtpServer, port, null, userid, password)); 

smtpTrans.connect(); 
smtpTrans.sendMessage(sMTPMessage, sMTPMessage.getAllRecipients()); 
System.out.println("transport "+smtpTrans.getReportSuccess()); 
smtpTrans.close(); 

Но это не сработало. и поэтому я не получаю информацию об отказе от электронной почты. Также я попытался установить свойство mail.smtp.from, которое также не сработало.

Кроме того, я видел этот

props.put("smtp.mail.from", bounceAddr);

Но с адресом электронной почты не на почтовом сервере, его на моем адреса Gmail. Так есть ли проблема с доменом?

ответ

0

Если вы используете свойства, убедитесь, что у вас нет опечатки в имени свойства, как вы это делали выше.

Вы можете убедиться, что JavaMail использует конверт. С адреса, который вы указываете, включив JavaMail session debugging и ища команду MAIL в SMTP-протоколе на выходе отладки.

Но реальная проблема, скорее всего, один из:

  1. Не все почтовые серверы чтить эту информацию, даже если они должны.
  2. Один из почтовых серверов, начиная с вашего почтового сервера и до почтового сервера назначения, возможно, не пересылал эту информацию, поскольку он пересылал ваше сообщение, оставляя почтовый сервер, который обнаруживает проблему, без информации, чтобы вернуть сообщение об ошибке надлежащее место.
  3. Ваш почтовый сервер может не выполнять эту информацию, поскольку это не адрес электронной почты в домене, управляемом вашим почтовым сервером.

Некоторые из этих проблем могут быть исправлены путем проверки конфигурации и поведения вашего почтового сервера. Но в конце концов вы просто не можете полагаться на всегда получение сообщения об ошибке при отправке на неверный адрес.

Дополнительную информацию можно найти в JavaMail FAQ.

+0

Когда я пытаюсь использовать его с gmail smtp, то и его не работает. – Anita

+0

Я обновил строку свойств в своем вопросе, как вы сказали – Anita

+0

Позвольте мне убедиться, что я понимаю этот сценарий ... Вы подключаетесь к SMTP Gmail и аутентифицируетесь с помощью своего идентификатора Gmail. Вы отправляете сообщение, используя этот идентификатор, как адрес From, но вы устанавливаете адрес «конверт с» на другой идентификатор Gmail. Вы отправляете неверный адрес Gmail. Сообщение об ошибке возвращается к вашему идентификатору Gmail вместо адреса «конверт от». Это верно? Если нет, объясните сценарий более подробно. Кроме того, вам может потребоваться подтверждение конверта из адреса, как описано [здесь] (https://support.google.com/mail/answer/22370?hl=ru). –

Смежные вопросы