安装sendmail
1、安装:
代码如下 | 复制代码 |
#yum install -y sendmail #yum install -y sendmail-cf 如果需要SMTP验证就安装并启动saslauthd服务: # yum install -y saslauthd # service saslauthd start |
2、配置
(1) 配置Senmail的SMTP认证
代码如下 | 复制代码 |
# vi /etc/mail/sendmail.mc dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl |
将上面两行的dnl去掉。在sendmail文件中,dnl表示该行为注释行,是无效的,因此通过去除行首的dnl字符串可以开启相应的设置行。
(2) 设置Sendmail服务的网络访问权限(因为我是直接本机调用所以我没有操作这个步骤)
代码如下 | 复制代码 |
# vi /etc/mail/sendmail.mc DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl |
将127.0.0.1改为0.0.0.0,意思是任何主机都可以访问Sendmail服务。如果仅让某一个网段能够访问到Sendmail服务,将127.0.0.1改为形如192.168.1.0/24的一个特定网段地址。
3、生成配置文件
Sendmail的配置文件由m4来生成,m4工具在sendmail-cf包中。如果系统无法识别m4命令,说明sendmail-cf软件包没有安装。
代码如下 | 复制代码 |
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf |
4、启动服务
代码如下 | 复制代码 |
#service sendmail start |
检查服务是否加入自启行列
代码如下 | 复制代码 |
#chkconfig --list |grep sendmail |
测试发送邮箱
方法1 安装sendmail即可使用,
代码如下 | 复制代码 |
mail -s "test" user@sohu.com <content.txt |
bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用。
方法2。利用外部的smpt服务器
而通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的:
修改/etc/nail.rc (/etc/mail.rc)
代码如下 | 复制代码 |
set from=fromUser@domain.com smtp=smtp.domain.comset smtp-auth-user=username smtp-auth-password=passwordset smtp-auth=login |
说明:
from是发送的邮件地址
smtp是发生的外部smtp服务器的地址
smtp-auth-user是外部smtp服务器认证的用户名
smtp-auth-password是外部smtp服务器认证的用户密码
smtp-auth是邮件认证的方式
配置成功后,就可以使用了
可以发送一封邮件测试一下:
代码如下 | 复制代码 |
mail -s "test" username@163.com <content.txt 其中-s后面的是邮件标题,user@sohu.com是收件人地址,content.txt里面是邮件正文 |
字符编码
在发送中文邮件中,字符编码是一个比较重要的问题,如果设置不正确,会导致邮件标题或邮件内容显示乱码。
邮件内容的编码可以在邮件头content-type中设置,如设置邮件内容为utf-8编码:
代码如下 | 复制代码 |
Content-type: text/html;charset=utf-8 |
邮件头中,如From,To,Subject等,如果需要用到中文,可以这样设置:
代码如下 | 复制代码 |
“=?UTF-8?B?”+base64encode(内容UTF8编码)+"?=" From: =?UTF-8?B?5L2g5aW9?= www.111cn.nert <jdoe@machine.example> <div style="border:solid 1px #1D448C;"> |
sendmail 配置参数
1.配置最少的自由块数
配置参数:MinFreeBlocks
参数描述:文件系统用来接受标准SMTP(简单邮件传输协议)邮件的队列中的最少的自由块数目。
越小越容易被攻击致命。
默认值:100
推荐值:4000或者更大
2.最大邮件大小
配置参数:MaxMessageSize
参数描述:每封邮件的最大尺寸,以比特(bytes)为单位。越大越容易被攻击致命。
默认值:不限制
推荐值:5M
3.自动重建别名
配置参数:AutoRebuildAliases
参数描述:需要的时候自动重建所有别名。如果设定为True的话,这是一个潜在的能引起拒绝服务攻击的危机。
默认值:False
推荐值:False
4.队列平均负荷
配置参数:QueueLA
参数描述:单一队列时的平均负荷。根据CPU的数量适当设定(8*CPU数量)
默认值:可变的
推荐值:10*CPU数量
5.平均负荷拒绝临界点
配置参数:RefuseLA
参数描述:一旦平均负荷超过此临界点,所有Incoming的SMTP连接均拒绝。
默认值:可变的
推荐值:8*CPU数量
6.最大的守护进程的子进程数
配置参数:MaxDaemonChildren
参数描述:容许Fork的最大的子进程数。超过此数目,连接就会被拒绝。如果设定值小于等于零,就意味着不限制。
默认值:没有定义
推荐值:根据内存大小设定。(例如,128M内存建议值为40)
7.最大的报头长度
配置参数:MaxHeadersLength
参数描述:所有报头的最大总长
默认值:没有设定
推荐值:32或者64K
8.最大MIME编码报文长度
MIME,Multipurpose Internet Mail Extension protocol,多用途的网际邮件扩充协议
配置参数:MaxMimeHeaderLength
参数描述:经过MIME编码的最大报文长度
默认值:没有定义
推荐值:1024或者更小
9.每封邮件的最多接收者
配置参数:MaxRecipientsPerMessage
参数描述:如果设定了的话,每封邮件只能同时抄送给指定数量的收信人。超过此数目就会返回一个452的错误代码。也就是说,在邮件队列中,会被无限期的延缓发送。
默认值:没有设定
推荐值:10-100