因公司业务需求,需要定时发送一些业务邮件。使用Linux 自带的mail 命令 发送邮件 ,能正常发送但是领导们都用手机收取邮件,很崩溃 他们接收到的邮件乱码。不得不想办法解决此问题。

   就在google 上搜搜 ,发现 利用 esmtp和mutt 可以收发 邮件  ,那我用一个不就可以利用其他邮件服务器发送邮件了吗。听大家都说gmail的邮箱 设这程utf-8的语言,手机收取就不乱码了。那就开始安装  、设置esmtp使用 gmail邮箱发送邮件。

环境: Centos5.2

需求 :发送邮件使用手机接收并不乱码

下载所需要的安装包,esmtp 是主程序,libesmtp是lib库

http://sourceforge.net/projects/esmtp/files/esmtp/1.2/

http://www.stafford.uklinux.net/libesmtp/download.html

一、安装

1、安装libesmtp  Lib库安装在/usr/local下


$ tar xvjf libesmtp-1.0.4.tar.bz2

$ cd libesmtp-1.0.4

$ ./configure --prefix=/usr/local

$ make

$ make install

$ cd ..



2、安装Esmtp主程序

$ tar xvjf esmtp-1.2.tar.bz2

$ cd esmtp-1.2

$ ./configure --prefix=/usr/local --with-libesmtp=/usr/local

$ make

$ make install


二、配置

1、改变系统中sendmail的链接,系统本身是这样的


/usr/sbin/sendmail -> /etc/alternatives/mta

$ mv  /usr/sbin/sendmail /usr/sbin/sendmail #不要删除做个备份,有问题可以恢复

$ ln -s /usr/bin/esmtp /usr/sbin/sendmail




2、创建配置文件,


1、在用户的根目录下创建 ~/.muttrc 和~/.esmtprc


# touch ~/.muttrc

#touch ~/.esmtpra


配置上面2个配置文件  


# vi ~/.esmtprc

identity mail1122@gmail.com

hostname = smtp.gmail.com:587

username = "mail1122@gmail.com"

password = "xxxxxx"

starttls = enabled

mda = "/usr/bin/procmail -d %T"


2、配置~/.muttrc 文件


# vi ~/.muttrc

set sendmail=”/usr/local/esmtp/bin/esmtp”

set envelope_from=yes



更多的配置参考:http://esmtp.sourceforge.net/doc.html

三、 现在可以发一封邮件测试下


# echo “测试”| mail -s “ceshi” leezhenhua17@163.com


如果在发送的时候报send-mail: error while loading shared libraries: libesmtp.so.6: cannot open shared object file: No such file or directory

可以在/etc/ld.so.conf加入一行

echo "/usr/local/lib" >> /etc/ld.so.conf && ldconfig 就能解决


客户端很快就收到邮件,用手机接收下不乱码好了。完成。


文章出自:colderboy