sendmail+tls
vim /etc/mail/sendmail.mc 找到如下行,去掉注释,修改路径及名称 define(`confCACERT_PATH', `/etc/mail/certs')dnl define(`confCACERT', `/etc/mail/certs/cacert.pem')dnl define(`confSERVER_CERT', `/etc/mail/certs/mysmtp.pem')dnl define(`confSERVER_KEY', `/etc/mail/certs/mysmtp.pem')dnl 完成后,重新生成sendmail.cf文件 m4 /etc/mail/senmail.mc >/etc/mail/sendmail.cf 生成证书: cd /etc/mail/certs 生成CA的签名及证书 openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650 生成Sendmail的证书 openssl req -nodes -new -x509 -keyout mysmtp.pem -out mysmtp.pem -days 3650 查看证书 openssl x509 -noout -text -in /etc/mail/certs/mysmtp.pem 看看生成的信息是否正确。 验证 sendmail -d0.1 -bv root 如下,主要看是否有SASLv2和STARTTLS。如果有,证明正常。 Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASLv2 SCANF STARTTLS USERDB XDEBUG 启动sendmail service sendmail start 查看日志是否有错误输出:tail -f /var/log/maillog,如果没有,在客户端outlook的smtp设置中,选中此服务器要求ssl验证,端口改为465。测试发送邮件,如果正常,证明安装成功。 ===============================================================java中使用ssl来调用此mailserver来发送邮件的话,需要导入证书改为私钥。
导入一个Pem的证书文件为java的私钥
1、转换pem格式为der格式 openssl x509 -outform der -in /etc/mail/certs/mysmtp.pem -out /etc/mail/certs/mysmtp.der //其中/etc/mail/certs为存放pem文件的路径 2、linux下导入 $JRE/bin/keytool -import -alias sendemail -keystore $JRE/lib/security/cacerts -file /etc/mail/certs/mysmtp.der windows下导入 keytool -import -alias your-alias -keystore %JAVA_HOME%\jre\lib\security\cacerts -file certificate.der 导入时提示需要密码,默认的keystore密码为:changeit