zoukankan      html  css  js  c++  java
  • Ubuntu中sendmail的安装、配置

           由于项目须要一个邮件server功能,用已有的企业邮箱又有各种限制,就来捣鼓了下和这个相关的一些东西。通常是有好几个选择,比方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接收邮件server守护进程
    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能够连接不论什么server

    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

    将须要使用该邮件server的IP依照下面格式增加到该文件里:Connect:your_ip RELAY

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

    (3)/etc/mail/trusted-users

    将须要使用该邮件server的IP依照下面格式增加到该文件里:一行一个ip

    最后生成新的配置文件:

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

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

    三、測试

    (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

  • 相关阅读:
    vuejs cli3 env配置文件实践指南
    Nginx的rewrite(地址重定向)剖析
    什么是TCP粘包?怎么解决这个问题
    windows bat批处理语法简析
    BAT文件语法和技巧(bat文件的编写及使用)
    Asyncio之EventLoop笔记
    python struct的使用例子
    redis慢查询笔记
    redis基础操作概念等笔记
    Python实现Dijkstra算法
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7398950.html
Copyright © 2011-2022 走看看