diff --git a/.env.template b/.env.template index 0f100a7db..81e26ab06 100644 --- a/.env.template +++ b/.env.template @@ -42,9 +42,11 @@ BRAPI_REFERENCE_SOURCE=breedinginsight.org WEB_BASE_URL=http://localhost:8080 # Email server -EMAIL_RELAY_HOST=mailhog -EMAIL_RELAY_PORT=1025 -EMAIL_FROM=bidevteam@cornell.edu +EMAIL_RELAY_HOST= +EMAIL_RELAY_PORT=<1025 for development, 25 for production> +EMAIL_FROM=noreply@breedinginsight.org +#EMAIL_RELAY_LOGIN= +#EMAIL_RELAY_PASSWORD= GIGWA_HOST= GIGWA_USER= diff --git a/src/main/java/org/breedinginsight/services/UserService.java b/src/main/java/org/breedinginsight/services/UserService.java index ebc4e94b4..7502ff8b2 100644 --- a/src/main/java/org/breedinginsight/services/UserService.java +++ b/src/main/java/org/breedinginsight/services/UserService.java @@ -388,7 +388,7 @@ private void sendAccountSignUpEmail(BiUserEntity user, SignedJWT jwtToken) { emailTemplate.add("expiration_time", expirationTime); String filledBody = emailTemplate.render(); - String subject = "New Account Sign Up"; + String subject = "Activate DeltaBreed Account"; // Send email emailUtil.sendEmail(user.getEmail(), subject, filledBody); diff --git a/src/main/java/org/breedinginsight/utilities/email/EmailUtil.java b/src/main/java/org/breedinginsight/utilities/email/EmailUtil.java index f0f6652d9..a839715a1 100644 --- a/src/main/java/org/breedinginsight/utilities/email/EmailUtil.java +++ b/src/main/java/org/breedinginsight/utilities/email/EmailUtil.java @@ -19,12 +19,10 @@ import io.micronaut.context.annotation.Property; import io.micronaut.http.server.exceptions.HttpServerException; +import org.apache.commons.lang3.StringUtils; import javax.inject.Singleton; -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Session; -import javax.mail.Transport; +import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.io.UnsupportedEncodingException; @@ -40,13 +38,29 @@ public class EmailUtil { private Integer smtpHostPort; @Property(name = "email.from") private String fromEmail; + @Property(name = "email.relay-server.login") + private String smtpLogin; + @Property(name = "email.relay-server.password") + private String smtpPassword; private Session getSmtpHost() { Properties props = new Properties(); props.put("mail.smtp.host", smtpHostServer); props.put("mail.smtp.port", smtpHostPort); props.put("mail.debug", true); - return Session.getInstance(props, null); + Authenticator auth = null; + if (StringUtils.isNotBlank(smtpLogin) && StringUtils.isNotBlank(smtpPassword)) { + props.put("mail.smtp.auth", true); + props.put("mail.smtp.ssl.trust", smtpHostServer); + props.put("mail.smtp.starttls.enable", true); + auth = new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(smtpLogin, smtpPassword); + } + }; + } + return Session.getInstance(props, auth); } public void sendEmail(String toEmail, String subject, String body){ diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index aec211b82..10acaf1f0 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -177,6 +177,8 @@ email: relay-server: host: ${EMAIL_RELAY_HOST} port: ${EMAIL_RELAY_PORT} + login: ${EMAIL_RELAY_LOGIN:null} + password: ${EMAIL_RELAY_PASSWORD:null} from: ${EMAIL_FROM} redisson: diff --git a/src/main/resources/email/newAccountEmail.st b/src/main/resources/email/newAccountEmail.st index a5fd73303..6fa9c1154 100644 --- a/src/main/resources/email/newAccountEmail.st +++ b/src/main/resources/email/newAccountEmail.st @@ -2,7 +2,7 @@ Welcome to Breeding Insight! We use a common login system with ORCID to provide authentication and account security. You will need a current ORCID iD and account to log in to Breeding Insight. If you do not already have an ORCID iD, you can create one here: https://orcid.org/register -To activate your Breeding Insight account and connect your ORCID iD to Breeding Insight, use this link: +To activate your DeltaBreed account and connect your ORCID iD to DeltaBreed, use this link: