#!/bin/bash
#auth: ZhangHao

check(){
  clear
  echo -e "\e[5;34m检测 部署 环境中...\e[0m"
  hostname | grep '\.'
  [ $? != 0 ] && echo  -e "\e[31m [ERROR \e[0m] The host name does not conform to the standard. Please change the host name and show it, such as (xxx.com) (主机名不符合规范,请改主机名并重试 如 xxx.com )" && exit
  if [ $UID != 0 ];then
     echo -e "\e[31m ERROR \e[0m] Please use root to execute the installation script (请
用 root 用户执行安装脚本)\e[0m"  && exit 1
  fi
}

install_sendmail(){
  if command -v yum;then
    yum -y install mailx  nss-tools sendmail
    [ $? != 0 ] && echo  -e "\e[31m [ERROR \e[0m] 下载软件包失败,请源并重试 (Failed to download the package, please source and try again.)" && exit
  else
    apt-get update && apt-get install  -y  libnss3-tools mailutils sendmail 
    [ $? != 0 ] && echo  -e "\e[31m [ERROR \e[0m] 下载软件包失败,请源并重试 (Failed to download the package, please source and try again.)" && exit
  fi 
}

get_crt(){
  mkdir ~/.certs/
  read -p "请输入邮件服务器 如(smtp.qq.com:465): " MAILSERVER
  smtp=`echo ${MAILSERVER} | cut -d. -f2`
  echo -n | openssl s_client -connect ${MAILSERVER} | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/${smtp}.crt
  certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/${smtp}.crt
  certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/${smtp}.crt
  certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/${smtp}.crt
  certutil -L -d ~/.cert
}

modify_config(){
  read -p "请输入发送邮件地址 如(xxx.qq.com): " MAIL
  read -p "请输入授权码(注!!不是qq密码,不知道的自行百度): " AUTH

  cat > /etc/mail.rc <<EOF
  set from=${MAIL}
  set smtp=smtps://${MAILSERVER} 
  set smtp-auth-user=$MAIL
  set smtp-auth-password=${AUTH}
  set smtp-auth=login
  set set nss-config-dir=~/.certs/
EOF
}

start_sendmail(){
  command -v systemctl && systemctl start sendmail && UP="systemctl start sendmail"
  command -v service && service sendmail start  && UP="service sendmail start"
  echo $UP
}

print_info(){
  echo -e "\e[33m
 _____  _   _ 
|__  / | | | |
  / /  | |_| |
 / /_  |  _  |
/____| |_| |_|
博客地址: http://www.zhanghaobk.com 云盘地址: http://www.haoyun66.cloud
QQ群: 706080502 
部署完成...

端口:25
启动sendmail命令: ${UP}
证书路径:~/.certs
配置文件路径:/etc/mail.rc

运行一下命令测试是否成功
########################################################
echo "hello world" | mail -s "test" ${MAIL}
########################################################

  \e[0m"
}

main(){
  check 
  install_sendmail
  get_crt
  modify_config
  start_sendmail
  print_info
}

main



Q.E.D.