Ubuntu中sendmail的安装、配置

       因为项目需要一个邮件服务器功能,用已有的企业邮箱又有各种限制,就来捣鼓了下和这个相关的一些东西。一般是有好几个选择,比如Postfix,sendmail,qmail,第一个我之前用过,但是项目需求只有发邮件,也不知怎的就选择了sendmail,事实证明还是不要作,废话不说,结合自己的一些经验总结一下,希望能让大家少踩坑。

一、安装

必装:

  1. sudo apt-get install sendmail  
  2. sudo apt-get install sendmail-cf  
  3. sudo apt-get install mailutils

可选:

  1. squirrelmail              //提供webmail          
  2. spamassassin          //提供邮件过滤  
  3. mailman                   //提供邮件列表支持  
  4. dovecot                   // 提供IMAP和POP接收邮件服务器守护进程
  5. sharutils                  // 提供带附件的功能

终端输入命令:ps aux |grep sendmail
输出如下:

root     20978  0.0  0.3   8300  1940 ?        Ss   06:34   0:00 sendmail: MTA: accepting connections          
root     21711  0.0  0.1   3008   776 pts/0    S+   06:51   0:00 grep sendmail
 

说明sendmail 已经安装成功并启动了

二、配置

(1) /etc/mail/sendmail.mc

(a)配置sendmail可以连接任何服务器

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl         修改Addr=0.0.0.0

(b)添加auth配置(注意字符串前面不是单引号,而是键盘中的波浪号键上的符号)

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

(c)启用access_db和trust_users

添加FEATURE(use_ct_file)

修改FEATURE(`access_db', , `skip')dnl为FEATURE(`access_db')dnl

(2)/etc/mail/access

将需要使用该邮件服务器的IP按照以下格式加入到该文件中:Connect:your_ip RELAY

然后更新access_db:makemap hash /etc/mail/access.db < /etc/mail/access

(3)/etc/mail/trusted-users

将需要使用该邮件服务器的IP按照以下格式加入到该文件中:一行一个ip

最后生成新的配置文件:

  1. cd /etc/mail  
  2. mv sendmail.cf sendmail.cf~      //做一个备份  
  3. m4 sendmail.mc > sendmail.cf   //>的左右有空格,提示错误没有安装sendm
为了防止其他邮件服务器将邮件投入垃圾邮件,可以添加spf记录,添加方式是在域名DNS管理里添加一条TXT记录,内容类似于

“v=spf1 ip4:67.202.107.106 -all”,同时修改/etc/host,在127.0.0.1 localhost之后将邮件服务器域名及主机名加进去

三、测试

(1)本机测试

1.一般的邮件: mail test@126.com  Cc 编辑抄送对象,Subject:邮件主题,输入回车,邮件正文后,按Ctrl-D结束

2.快速发送方式: echo “邮件正文” | mail -s 邮件主题 test@126.com

3.以文件内容作为邮件正文来发送: mail -s test test@126.com < test.txt

4.发送带附件的邮件: uuencode 附件名称 附件显示名称 | mail -s 邮件主题 发送地址

       例如: uuencode test.txt test.txt | mail -s Test test@126.com

(2)其他机器测试

# -*- coding: UTF-8 -*-                                                                                                                                                

import smtplib 

from email.mime.text import MIMEText  

from email.mime.multipart import MIMEMultipart

if __name__ == "__main__":

to = "to email addr"

    me = "your email addr"

    content = "test"

    msg = MIMEMultipart('alternative') 

    msg['Subject'] = "test"  

    msg['From'] = me  

    msg['To'] = to

    part2 = MIMEText(content, 'html',_charset='utf-8')

    msg.attach(part2)

    try:  

        server = smtplib.SMTP(your email server)  

        server.sendmail(me, to, msg.as_string())  

        server.quit() 

    except Exception, e:  

        print e

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值