Java Mail API: Difference between revisions
Jump to navigation
Jump to search
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Mail Config== | |||
<source lang="java" highlight="27-29"> | |||
import java.util.Properties; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.context.annotation.Bean; | |||
import org.springframework.context.annotation.Configuration; | |||
import org.springframework.mail.javamail.JavaMailSender; | |||
import org.springframework.mail.javamail.JavaMailSenderImpl; | |||
@Configuration | |||
public class MailConfig { | |||
@Bean | |||
public JavaMailSender getMailSender() { | |||
JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); | |||
mailSender.setHost("mail.chorke.org"); | |||
mailSender.setPort(465); | |||
if(!"[email protected]".isEmpty()) { | |||
mailSender.setUsername("[email protected]"); | |||
mailSender.setPassword("p@$$w0rd"); | |||
} | |||
Properties javaMailProperties = new Properties(); | |||
javaMailProperties.put("mail.smtp.auth", "[email protected]".isEmpty() ? "false" : "true"); | |||
javaMailProperties.put("mail.smtp.ehlo", "true"); | |||
javaMailProperties.put("mail.smtp.ssl.trust", "mail.chorke.org"); | |||
javaMailProperties.put("mail.smtp.starttls.enable", "true"); | |||
javaMailProperties.put("mail.smtp.ssl.enable", "true"); | |||
javaMailProperties.put("mail.transport.protocol", "smtp"); | |||
javaMailProperties.put("mail.debug", "true"); | |||
mailSender.setJavaMailProperties(javaMailProperties); | |||
return mailSender; | |||
} | |||
} | |||
</source> | |||
==Properties== | |||
<source lang="properties"> | |||
chorke.notify.email.smtp.host: smtp.gmail.com | |||
chorke.notify.email.smtp.port: 587 | |||
chorke.notify.email.smtp.username: [email protected] | |||
chorke.notify.email.smtp.password: p@$$w0rd | |||
chorke.notify.email.smtp.alias: [email protected] | |||
chorke.notify.email.smtp.starttls: true | |||
chorke.notify.email.smtp.debug: false | |||
chorke.notify.email.smtp.ehlo: true | |||
chorke.notify.email.smtp.ssl: false | |||
</source> | |||
<source lang="properties"> | |||
chorke.notify.email.smtp.host: mail.chorke.org | |||
chorke.notify.email.smtp.port: 587 | |||
chorke.notify.email.smtp.username: [email protected] | |||
chorke.notify.email.smtp.password: p@$$w0rd | |||
chorke.notify.email.smtp.alias: [email protected] | |||
chorke.notify.email.smtp.starttls: true | |||
chorke.notify.email.smtp.debug: false | |||
chorke.notify.email.smtp.ehlo: true | |||
chorke.notify.email.smtp.ssl: false | |||
</source> | |||
<source lang="properties"> | |||
chorke.notify.email.smtp.host: mail.chorke.org | |||
chorke.notify.email.smtp.port: 465 | |||
chorke.notify.email.smtp.username: [email protected] | |||
chorke.notify.email.smtp.password: p@$$w0rd | |||
chorke.notify.email.smtp.alias: [email protected] | |||
chorke.notify.email.smtp.starttls: true | |||
chorke.notify.email.smtp.debug: false | |||
chorke.notify.email.smtp.ehlo: true | |||
chorke.notify.email.smtp.ssl: true | |||
</source> | |||
==Knowledge== | |||
<source lang="bash"> | |||
# debugging certificate handshacking | |||
service='api.chorke.org:5443/soap/services';\ | |||
echo -e "GET / HTTP/1.0\r\n" | openssl s_client \ | |||
-connect $service -CAfile chorke_client.pem | |||
</source> | |||
openssl help | |||
openssl help pkcs12 | |||
keytool --help -importkeystore | |||
openssl s_client -connect mail.chorke.org:465 -state | |||
sudo keytool -import -trustcacerts -alias letsencrypt_r3 -file lets-encrypt-r3.der -keystore\ | |||
'''/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts''' | |||
sudo keytool -import -trustcacerts -alias letsencrypt_r3 -file lets-encrypt-r3.der -keystore\ | |||
'''/etc/ssl/certs/java/cacerts''' | |||
Enter keystore password: '''changeit''' | |||
==References== | ==References== | ||
{| | {| | ||
|valign="top"| | |valign="top"| | ||
* [https://stackoverflow.com/questions/60654561/ Java Mail cannot connect to SMTP using TLS/SSL] | |||
* [https://letsencrypt.org/certificates/ Let’s Encrypt Chain of Trust] | |||
* [https://eclipse-ee4j.github.io/mail/ Jakarta Mail API] | * [https://eclipse-ee4j.github.io/mail/ Jakarta Mail API] | ||
* [[Java Key Store]] | |||
* [https://javaee.github.io/javamail/ Java Mail API] | * [https://javaee.github.io/javamail/ Java Mail API] | ||
* [[Java/Security]] | |||
* [[Java]] | |||
|valign="top"| | |valign="top"| |
Latest revision as of 02:16, 22 September 2022
Mail Config
import java.util.Properties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@Configuration
public class MailConfig {
@Bean
public JavaMailSender getMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("mail.chorke.org");
mailSender.setPort(465);
if(!"[email protected]".isEmpty()) {
mailSender.setUsername("[email protected]");
mailSender.setPassword("p@$$w0rd");
}
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.auth", "[email protected]".isEmpty() ? "false" : "true");
javaMailProperties.put("mail.smtp.ehlo", "true");
javaMailProperties.put("mail.smtp.ssl.trust", "mail.chorke.org");
javaMailProperties.put("mail.smtp.starttls.enable", "true");
javaMailProperties.put("mail.smtp.ssl.enable", "true");
javaMailProperties.put("mail.transport.protocol", "smtp");
javaMailProperties.put("mail.debug", "true");
mailSender.setJavaMailProperties(javaMailProperties);
return mailSender;
}
}
Properties
chorke.notify.email.smtp.host: smtp.gmail.com
chorke.notify.email.smtp.port: 587
chorke.notify.email.smtp.username: [email protected]
chorke.notify.email.smtp.password: p@$$w0rd
chorke.notify.email.smtp.alias: [email protected]
chorke.notify.email.smtp.starttls: true
chorke.notify.email.smtp.debug: false
chorke.notify.email.smtp.ehlo: true
chorke.notify.email.smtp.ssl: false
chorke.notify.email.smtp.host: mail.chorke.org
chorke.notify.email.smtp.port: 587
chorke.notify.email.smtp.username: [email protected]
chorke.notify.email.smtp.password: p@$$w0rd
chorke.notify.email.smtp.alias: [email protected]
chorke.notify.email.smtp.starttls: true
chorke.notify.email.smtp.debug: false
chorke.notify.email.smtp.ehlo: true
chorke.notify.email.smtp.ssl: false
chorke.notify.email.smtp.host: mail.chorke.org
chorke.notify.email.smtp.port: 465
chorke.notify.email.smtp.username: [email protected]
chorke.notify.email.smtp.password: p@$$w0rd
chorke.notify.email.smtp.alias: [email protected]
chorke.notify.email.smtp.starttls: true
chorke.notify.email.smtp.debug: false
chorke.notify.email.smtp.ehlo: true
chorke.notify.email.smtp.ssl: true
Knowledge
# debugging certificate handshacking
service='api.chorke.org:5443/soap/services';\
echo -e "GET / HTTP/1.0\r\n" | openssl s_client \
-connect $service -CAfile chorke_client.pem
openssl help openssl help pkcs12 keytool --help -importkeystore openssl s_client -connect mail.chorke.org:465 -state
sudo keytool -import -trustcacerts -alias letsencrypt_r3 -file lets-encrypt-r3.der -keystore\ /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts sudo keytool -import -trustcacerts -alias letsencrypt_r3 -file lets-encrypt-r3.der -keystore\ /etc/ssl/certs/java/cacerts Enter keystore password: changeit