应公司要求, 我这里需要在服务器上面起一个进程, 来监控服务器的程序状态, 如果有异常的话需要及时发邮件报警
这里为了发邮件遇到的问题还是有点多的, 所以在这里记录一下
- postfix
这里刚开始我选择了使用postfix发送邮件, 但是在启动的时候一直报错 unable to set exclusive lock: Resource temporarily unavailable, 这个在百度后才知道, 第一次配置的时候配置有误, 这里只需要删除对应目录下的那个lock文件即可 再次启动的时候仍然报错, 当然了 这次是小错误, 邮件的25接口已经被占用, 这里在杀死25端口占用进程后正常重启 但是仍然不能发送 当然 在这里我也了解到 阿里云是默认禁止25端口的, 所以如果需要发送邮件需要使用其他端口, 这里我使用的是163邮箱, 根据网易官方的配置 我把端口改为465并且使用ssl验证 - 使用mail发送
这里在输入echo “test” | mail -s “test” xxx@qq.com后并没有反应 在过一段时间后, 会提示失败,继续百度, 这里配置了下/etc/mail.rc 配置如下
set from=xxx@163.com
set smtp=“smtps://smtp.163.com:465”
set smtp-auth-user=xxx@163.com
set smtp-auth-password=pass
set smtp-auth=login
set passet smtp-use-starttls
set nss-config-dir=/root/.certs
但是在配置后 会出现smtp-server: 454 Command not permitted when TLS active 错误, 继续百度, 在查阅了许多的资料后终于发现 完全没有什么卵用, 知道发现一位大神说 163的邮箱的密码要为授权码…权码 … 码… 好吧 继续去163设置授权码. 经过努力,终于,还是没有什么乱用, 而且连错误信息都没有变化, 那么 假设问题出现在这里 根据控制变量法, 上述改变的属性并不是影响邮件发送成功与否的原因, 那么 我在查看了其他博客的相关配置后发现 其他人并没有把passet smtp-use-starttls设置上, 于是我修改配置 注释了这一行 再次发送 邮箱收到邮件