Если вы ищете учебник по настройке SMTP-сервера, вам не нужно искать JavaMail. Просто найдите учебное пособие на выбранном вами сервере ( Kerio , например ... или Exim , SendMail , Apache James , Постфикс ) или спросите на Ошибка сервера . Любой SMTP-совместимый сервер будет прекрасно работать с JavaMail.
В качестве альтернативы, вы можете даже использовать любую "стандартную" инфраструктуру почтового провайдера. Например, я использую учетную запись Google Apps вместе с SMTP-инфраструктурой Google для отправки почты из наших приложений Java. Использование учетной записи Gmail в любом случае является хорошей отправной точкой, если вы не хотите настраивать собственный SMTP-сервер, чтобы просто протестировать JavaMail.
В качестве последнего варианта вы можете даже просмотреть MX-записи для домена и доставить почту непосредственно на SMTP-сервер получателя. Есть несколько распространенных ошибок, которые стоит обойти.
В качестве последнего пункта вам необходимо выяснить, как избежать фильтрации ваших писем как спама, что само по себе является огромной темой. Здесь полезно полагаться на стандартных провайдеров, которые будут решать некоторые проблемы, с которыми вы можете столкнуться при размещении своего собственного сервера.
Кстати: что касается отправленного вами сообщения об ошибке: SMTP-сервер запрещает ретрансляцию сообщений. Это если ваш SMTP-сервер (считает, что он) работает на example.com, и вы отправляете как bob@example.net на alice@example.org, вы просите SMTP-сервер действовать как ретранслятор. Это было обычной практикой несколько лет назад, до тех пор, пока ее, как вы уже догадались, не использовали спамеры. С тех пор почтмейстерам рекомендуется отрицать ретрансляцию. У вас есть два варианта: аутентифицироваться перед отправкой почты или отправлять учетные записи, размещенные только на вашем сервере (например, на example.com, например, alice@example.com).
Edit:
Вот код, который поможет вам начать аутентификацию g (работает с учетными записями Gmail, но также и для вашего собственного сервера)
private Session createSmtpSession() {
final Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.port", "" + 587);
props.setProperty("mail.smtp.starttls.enable", "true");
// props.setProperty("mail.debug", "true");
return Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("john.doe@gmail.com", "mypassword");
}
});
}