У меня есть странная проблема с пользовательским портлетом на Liferay 7, которую нужно решить:
- MailService.sendMail работает с МОЕГО КОМПЬЮТЕРА с google smtp и личным аккаунтом: это означает, что код работает...
- На моем HOST SERVER отправка писем с final-smtp работает правильно: я пробовал как пользователя root, так и пользователя liferay с портом telnet final-smtp.
- На сервере Liferay на HOST SERVER отправка электронной почты работает правильно: если я забуду пароль, Liferay отправит мне электронное письмо.
- Но... если я попытаюсь отправить электронное письмо с помощью своего портлета из Liferay на HOST SERVER, это не сработает без каких-либо ошибок. Я использую Liferay MailService.sendMail. Я публикую код, но он работает (на МОЕМ КОМПЬЮТЕРЕ).
Я получаю услугу таким образом:
@Reference(unbind = "-")
protected void setMailService(MailService mailService) {
_mailService = mailService;
}
И код вызова находится в следующем:
InternetAddress fromAddress = null;
String newsletterPrefix = null;
InternetAddress toAddress = null;
try {
String smtpUser = PropsUtil.get(
"newsletter.send.mail.smtp.user");
String smtpToUser = PropsUtil.get(
"newsletter.send.mail.smtp.to.user");
if (Validator.isNotNull(smtpUser)) {
fromAddress = new InternetAddress(smtpUser);
}
if (Validator.isNotNull(smtpToUser)) {
toAddress = new InternetAddress(smtpToUser);
}
}
catch (Exception e) {
_log.error(e, e);
result = false;
}
MailMessage mailMessage = new MailMessage(
fromAddress, toAddress, subject, body, true);
mailMessage.setBCC(addressList);
_mailService.sendEmail(mailMessage);