码迷,mamicode.com
首页 > 系统相关 > 详细

Ubuntu中sendmail的安装、配置

时间:2015-06-28 14:13:28      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:

       因为项目需要一个邮件服务器功能,用已有的企业邮箱又有各种限制,就来捣鼓了下和这个相关的一些东西。一般是有好几个选择,比如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

Ubuntu中sendmail的安装、配置

标签:

原文地址:http://blog.csdn.net/dengbodb/article/details/46670683

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!