linux(debian)下邮件发送
关键字: exim4 mutt smtp
主要的事情就是配置exim4,按照网上的流程来。在这里总结一下:
需要修改的文件有三个:/etc/exim4/update-exim4.conf.conf, /etc/exim4/passwd-client, /etc/email-addresses。
- 首先修改 update*conf文件。 打开文件可以看到
# Edit this file and /etc/mailname by hand and execute update-exim4.conf # yourself or use 'dpkg-reconfigure exim4-config'
可以看到,不仅要修改此文件,还要修改/etc/mailname,但是mailname文件内可以随便写一个名字。 或者命令行输入 ‘dpkg-reconfigure exim4-config’,根据提示来输入, 跟修改文件的效果是一样的。
dc_eximconfig_configtype='smarthost' #用smarthost发信;通过SMTP或fetchmail接收信件 dc_other_hostnames='' dc_local_interfaces='127.0.0.1' #只接收本机的SMTP请求,只在本机使用Exim4 dc_readhost='' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='smtp.qq.com' #远程的SMTP主机,我们通过它来发送邮件 CFILEMODE='644' dc_use_split_config='false' #不使用分散方式的配置文件 dc_hide_mailname='false' dc_mailname_in_oh='true'
上面代码是update*conf文件修改后的内容。要注意的地方是 'smtp.qq.com', 可能你使用的只是真正的smtp服务器的别名,要获取真正的smtp服务器也很简单,只需要ping一下即可。例如 ping smpt.pku.edu.cn,
正在 Ping smtp.lb.pku.edu.cn [162.105.129.21] 具有 32 字节的数据: 来自 162.105.129.21 的回复: 字节=32 时间=1ms TTL=253 来自 162.105.129.21 的回复: 字节=32 时间=1ms TTL=253
可知真正的smtp服务器是smtp.lb.pku.edu.cn。(有些博文说需要在stmp服务器后面添加端口,例如qq的stmp服务器端口是587,那么写成smtp.qq.com::587,但是我这样写一直出现错误,不写端口之后才测试正确。表示实在是不解其中缘由)
- 修改 passwd-client文件。加入 *:exampleName@pku.edu.cn:password。 *是通配符,代表之前输入的smtp服务器,然后便是用户名和密码。
- 修改 email-addresses。 输入 user:exampleName@pku.edu.cn。 表示user用户使用stmp.lb.pku.edu.cn服务器来发送邮件,验证用户为example@pku.edu.cn。这里可以为每一个用户设置一个验证邮箱。
设置完后,通过update-exim4.conf命令来修改配置, /etc/init.d/exim4 restart重新启动exim4。
最后发送邮件:
mutt -s "主题" name@qq.com < file.txt -a 'attachFile'。 -s表示主题, file.txt是邮件正文, -a 附件。