refactor/used Apache Commons Email instead of LiftMail- step4

This commit is contained in:
hongwei 2025-08-05 17:22:31 +02:00
parent 1d2067e931
commit a4395967ee
3 changed files with 14 additions and 9 deletions

View File

@ -151,7 +151,6 @@ import org.apache.commons.io.FileUtils
import java.io.{File, FileInputStream}
import java.util.stream.Collectors
import java.util.{Locale, TimeZone}
import javax.mail.internet.MimeMessage
import scala.concurrent.ExecutionContext
/**
@ -693,9 +692,9 @@ class Boot extends MdcLoggable {
case e: ExceptionInInitializerError => logger.warn(s"BankAccountCreationListener Exception: $e")
}
Mailer.devModeSend.default.set( (m : MimeMessage) => {
logger.info("Would have sent email if not in dev mode: " + m.getContent)
})
// Mailer.devModeSend.default.set( (m : MimeMessage) => {
// logger.info("Would have sent email if not in dev mode: " + m.getContent)
// })
LiftRules.exceptionHandler.prepend{
case(_, r, e) if e.isInstanceOf[NullPointerException] && e.getMessage.contains("Looking for Connection Identifier") => {

View File

@ -23,7 +23,8 @@ object CommonsEmailWrapper extends MdcLoggable {
password: String,
useTLS: Boolean = true,
useSSL: Boolean = false,
debug: Boolean = false
debug: Boolean = false,
tlsProtocols: String = "TLSv1.2" // TLS protocols to use
)
/**
@ -51,7 +52,8 @@ object CommonsEmailWrapper extends MdcLoggable {
password = APIUtil.getPropsValue("mail.smtp.password", ""),
useTLS = APIUtil.getPropsValue("mail.smtp.starttls.enable", "false").toBoolean,
useSSL = APIUtil.getPropsValue("mail.smtp.ssl.enable", "false").toBoolean,
debug = APIUtil.getPropsValue("mail.debug", "false").toBoolean
debug = APIUtil.getPropsValue("mail.debug", "false").toBoolean,
tlsProtocols = APIUtil.getPropsValue("mail.smtp.ssl.protocols", "TLSv1.2")
)
}
@ -168,6 +170,7 @@ object CommonsEmailWrapper extends MdcLoggable {
email.setSSLOnConnect(config.useSSL)
email.setStartTLSEnabled(config.useTLS)
email.setDebug(config.debug)
email.getMailSession.getProperties.setProperty("mail.smtp.ssl.protocols", config.tlsProtocols)
// Set charset
email.setCharset("UTF-8")

View File

@ -33,6 +33,7 @@ import code.api.cache.Caching
import code.api.dynamic.endpoint.helper.DynamicEndpointHelper
import code.api.util.APIUtil._
import code.api.util.CommonFunctions.validUri
import code.api.util.CommonsEmailWrapper._
import code.api.util.ErrorMessages._
import code.api.util._
import code.bankconnectors.Connector
@ -55,7 +56,6 @@ import net.liftweb.http.S.fmapFunc
import net.liftweb.http._
import net.liftweb.mapper._
import net.liftweb.sitemap.Loc.{If, LocParam, Template}
import net.liftweb.util.Mailer.{BCC, From, Subject, To}
import net.liftweb.util._
import org.apache.commons.lang3.StringUtils
import sh.ory.hydra.api.AdminApi
@ -597,7 +597,7 @@ import net.liftweb.util.Helpers._
val resetPasswordLinkProps = Constant.HostName
val resetPasswordLink = APIUtil.getPropsValue("portal_hostname", resetPasswordLinkProps)+
passwordResetPath.mkString("/", "/", "/")+urlEncode(u.getUniqueId())
logger.error("2222222222222222222222222222222222222223333:"+classOf[javax.activation.DataSource].getProtectionDomain.getCodeSource)
logger.error("222222222222222222222222222222222222222444:"+classOf[javax.activation.DataSource].getProtectionDomain.getCodeSource)
// Use Apache Commons Email wrapper instead of Lift Mailer
val emailBodies = generateResetEmailBodies(u, resetPasswordLink)
@ -615,11 +615,14 @@ import net.liftweb.util.Helpers._
textContent = textContent,
htmlContent = htmlContent
)
sendHtmlEmail(emailContent) match {
case Full(messageId) => logger.debug(s"Password reset email sent successfully with Message-ID: $messageId")
case Empty => logger.error("Failed to send password reset email")
}
// Mailer.sendMail(From(emailFrom),Subject(passwordResetEmailSubject + " - " + u.username),
// To(u.getEmail) ::
// generateResetEmailBodies(u, resetPasswordLink) :::
// (bccEmail.toList.map(BCC(_))) :_*)
case u =>
sendValidationEmail(u)
}