配置exim4,利用mail或mutt发送邮件到外部邮箱

By | September 20, 2011

一开始的需求是:发送邮件到外部邮箱,每天差不多几十到几千封。Debian默认安装了exim4。
说一下ubuntu下的安装和配置吧。

利用外部smtp服务器发送邮件

这里的外部smtp服务器是指163/sina/gmail/yahoo等邮箱的smtp服务器。

  1. 命令行中sudo dpkg-reconfigure exim4-config ,出来配置窗口;
  2. “General type of mail configuration”中选择第三个”mail sent by smarthost;no local mail”,然后依次配置下去,在”Ip address or host name of the outgoing smarthost”中,填入smtp.163.com等类似的smtp服务器地址,然后,其他的就很简单了;
  3. 修改/etc/email-addresss,按照给定的例子,在最后加上 “当前登录用户名:example@163.com”;
  4. 修改/etc/exim4/passwd.client,在最后加上”*: example(替换成自己的邮箱用户名):password”
  5. 然后,其他的按照网上能搜到的东西,佩佩就OK了。

    直接发送给外部邮箱

    不利用其他外部的smtp服务器;

  6. 命令行中sudo dpkg-reconfigure exim4-config,又是这个窗口;
  7. 选择“internet site;mai is send and …”;
  8. ”System mail name”,填上个类似与”example.com”的就可以了;
  9. ”IP address to listen on for ….”,填上“127.0.0.1”,OK;
  10. ”Other destinations for which mail is accepted”,填上hostname和“localhost”,中间用分号隔开。如果不知道hostname是什么,可以在shell下输hostname命令查看;
  11. 其他默认,一路OK。等待MTA重启。
    用mutt发送的话,可以进行以下自定义设置,比如说改变一下发送人的名称,发信人的邮箱地址等等。于是就有了第七步:
  12. sudo vi /etc/Muttrc,最后一行后面加上下面的代码(如有需要):
    set realname=”Mrs Wang” #收件人看到的发信人姓名
    my_hdr Organization:Person,Beijing,China#邮件头中的organization,可以注上公司或者单位名
    set use_from=yes
    set envelope_from=yes
    set from=”myyouxiang@sherven.net”
    set charset=”gb2312″
    关于mutt的更多设置,可以看
    http://baike.baidu.com/view/1374535.html?fromTaglist和
    http://www.mutt.org/doc/manual/manual-3.html
    ok。
    3 则回应给 “配置exim4,利用mail或mutt发送邮件到外部邮箱” X匿名
    2011 年 11 月 23 日 上午 7:31 (编辑)
    $ cd
    $ vi .muttrc
    set content_type=”text/html;charset=gbk”
    set charset=”gbk”
    set send_charset=”gbk:gb2312:us-ascii:iso-8859-1:utf-8″
    回复
    匿名
    2011 年 9 月 20 日 上午 11:35 (编辑)
    另外,摘抄了以下:
    发送html邮件,一定要mutt 1.5.x版本,1.4不支持content_type变量, 用my_hdr加的gmail不支持
    set content_type=text/html 一定要,不然识别不出html编码,显示为普通文本。mutt1.5.x版本才支持
    set charset=”utf-8″ 这个一定要设置,不然通过shell脚本crontab定时发信时显示的编码为unknown-8bit,识别不出编码来
    set content_type=”text/html”
    set editor=”vim”
    set envelope_from=yes 一定要设置,不然return-path显示的是系统用户名加域名,这可是我google,百度都用遍才找到的
    set from=”我爱你” 设置发件人
    set move=no 不删除邮件
    set read_only=no
    set realname=”yourname”

    set sendmail=”/usr/sbin/sendmail -oem -oit”

    set use_from=yes
    set user_agent=no 发信时不显示用户代理信息
    下面是我的配置,其余没有列出的参数使用默认设置
    set content_type=”text/html\;charset=utf-8″
    set charset=”utf-8″
    set editor=”vim”
    set envelope_from=yes
    set from=”网站名字”
    set read_only=no
    set realname=”test”
    set send_charset=”utf-8:us-ascii:iso-8859-1″
    set sendmail=”/usr/sbin/sendmail -oem -oit”
    set use_from=yes
    set user_agent=no
    回复
    匿名
    2011 年 9 月 20 日 上午 11:33 (编辑)
    假如有个文本文件,编码时GBK的,写 一个shell脚本负责发邮件,脚本中调用mutt函数,这时候,一定要注意编码的问题。在mutt函数前面export LC_CTYPE=”zh_CN.gb2312″,然后调用mutt函数发邮件,最后再export LC_CTYPE=”zh_CN.utf-8″。意思是先将编码设置为gb2312,然后,用gbk发邮件,最后还原原来的编码设置。
    下面说说mutt的配置文件,因为在调用mutt之前,编码已经变为gb2312,所以,应该设置set charset=gbk(否则发信时显示的编码为unknown-8bit,识别不出编码来),然后设置send_charset=”gvk;utf-8″,设置好发信编码。

Leave a Reply

Your email address will not be published. Required fields are marked *