From c7324372110cc726c7299d36c3b22de2cda9ead7 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 25 Apr 2016 11:41:34 +0200 Subject: [PATCH] OO-1935: add an option to fix from of the smtp envelope --- .../olat/core/util/_spring/utilCorecontext.xml | 1 + .../core/util/mail/manager/MailManagerImpl.java | 15 ++++++++++++++- src/main/resources/serviceconfig/olat.properties | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml b/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml index 304d6c9be60..53e7540a0a5 100644 --- a/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml +++ b/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml @@ -33,6 +33,7 @@ <entry key="smtpStarttls" value="${smtp.starttls}"/> <entry key="mailFrom" value="${fromemail}"/> <entry key="mailFromName" value="${fromname}"/> + <entry key="smtpFrom" value="${smtp.from}"/> <entry key="mailReplyTo" value="${adminemail}"/> <entry key="mailSupport" value="${supportemail}"/> <entry key="mailQuota" value="${quotaemail}"/> diff --git a/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java b/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java index a0d0b3b29f2..945027a5e2e 100644 --- a/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java +++ b/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java @@ -110,6 +110,8 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.sun.mail.smtp.SMTPMessage; + /** * * Description:<br> @@ -1597,7 +1599,18 @@ public class MailManagerImpl implements MailManager, InitializingBean { } @Override - public void sendMessage(MimeMessage msg, MailerResult result){ + public void sendMessage(MimeMessage msg, MailerResult result) { + String smtpFrom = WebappHelper.getMailConfig("smtpFrom"); + if(StringHelper.containsNonWhitespace(smtpFrom)) { + try { + SMTPMessage smtpMsg = new SMTPMessage(msg); + smtpMsg.setEnvelopeFrom(smtpFrom); + msg = smtpMsg; + } catch (MessagingException e) { + log.error("", e); + } + } + try{ if(Settings.isJUnitTest()) { //we want not send really e-mails diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties index bd223ab52e8..adf39e70302 100644 --- a/src/main/resources/serviceconfig/olat.properties +++ b/src/main/resources/serviceconfig/olat.properties @@ -124,6 +124,8 @@ smtp.sslCheckCertificate=false smtp.starttls=false # timeout in milliseconds smtp.timeout=8000 +# fix from of the smtp envelope +smtp.from= # system mails will be sent from this address (from local domain with valid reverse dns): fromemail=no-reply@your.domain # the plain text name of the from mail address usually displayed by the email client -- GitLab