Java Mail Exception - PullRequest
       9

Java Mail Exception

1 голос
/ 01 марта 2010

В настоящее время у меня возникает проблема, когда я пытаюсь отправить электронное письмо с помощью JavaMail API. Исключение, которое я получаю из консоли приложения:

"javax.mail.MessagingException: 550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1)"

кстати, я уже установил для свойства mail.smtp.auth значение true как: props.put ("mail.smtp.auth", "true"), но все равно не получилось, у кого-нибудь есть идея? или сталкивались с подобной проблемой раньше?

Ответы [ 2 ]

1 голос
/ 02 марта 2010

заменить

props.put("mail.smtp.auth", true); 

до

props.put("mail.smtp.auth", "true");

и все работает :) 1007 *

1 голос
/ 01 марта 2010

SMTP-сервер часто возвращает ошибку 550, когда имя отправляющего хоста не может быть обращено обратно к исходному IP-адресу. Это позволяет почтовым серверам немного аутентифицировать, что отправляющий клиент является тем, кем он говорит. К сожалению, у многих тестовых клиентов - особенно систем за устройством NAT - будут исходящие IP-адреса, которые не сопоставляются ни с одним именем.

Например, у компьютера, на котором я это печатаю, IP-адрес 192.168.1.103 не маршрутизируется, и моим именем хоста может быть so.example.myhouse, который работает нормально, потому что мой маршрутизатор делает вид, что пакеты с моего компьютера приходят ( например, ) 69.59.196.211, который является моим WAN-адресом. Однако, если вы используете props.put("mail.from", "me@so.example.myhouse"), SMTP-сервер может попытаться выполнить поиск DNS и, очевидно, потерпит неудачу для моего вымышленного имени хоста (то есть того, о котором глобальный DNS не знает).

Даже если я использовал DNS-имя, которое отображается на 69.59.196.211 ( например stackoverflow.com), SMTP-сервер может выполнить обратный поиск DNS , чтобы проверить это 211.196.59.69. in-addr.arpa отображается на stackoverflow.com. Если это не удается, SMTP-сервер может считать вас спуфером и вернуть 550.

Наконец, ваш отправляющий клиент или каждый хост, у которого есть свой блок IP-адресов, может быть помещен в черный список SMTP-сервером по причинам, которые вы не можете контролировать.

Без большего контекста, чем вы, вероятно, хотите опубликовать (имена и адреса виновного клиента и сервера), я не могу быть уверен, что это проблема SMTP / DNS, не связанная с Java, поэтому вам придется проверять эти биты самостоятельно , Вы можете вообще пропустить Java и telnet smtp-servername 25 и пообщаться с сервером самостоятельно. RFC 2821 окажется полезным, если вы попробуете.

...