设为首页 收藏本站
查看: 1506|回复: 0

[经验分享] 使用ubuntu安装邮件服务器Postfix发送邮件的过程

[复制链接]

尚未签到

发表于 2015-11-24 11:32:27 | 显示全部楼层 |阅读模式
  

  原文来自:
  

  http://blog.csdn.net/basicthinker/article/details/6167606
  

  

  
Ubuntu 服务器管理员手记(二):快速安装配置邮件服务器(详解 Postfix + Dovecot)
分类: Linux 2011-10-14 15:17 270人阅读 评论(2)收藏 举报  
  本文介绍 ubuntu 上邮件服务器的基本配置过程,面向个人和初级企业应用,能够保证信息安全但不涉及垃圾邮件和病毒的防范。
  测试环境使用 Ubuntu 11.04,Postfix 2.8.2,Dovecot 1.2.15,其他版本可参照。
  首先说明基本的背景知识。一个邮件服务器通常包括如下两个基本组件:

  • Mail Transfer Agent (MTA),用于向收件人的目标 agent 发送邮件和接收来自其他 agent 的邮件。我们使用 Postfix 作为 MTA,它比 sendmail 更安全高效,且在 Ubuntu 平台上官方源提供更新。
  • Mail Delivery Agent (MDA),用于用户到服务器上访问自己的邮件。我们使用 Dovecot 作为 MDA,它在 Ubuntu 平台上也是官方源提供更新。
组件安装
  在 root 权限下执行(或使用 sudo):
[plain] view plaincopy

  • # apt-get install postfix  
  • # apt-get install dovecot-common  
  • # apt-get install dovecot-imapd dovecot-pop3d  
Postfix 基本设置
  编辑 /etc/postfix/main.cf 文件,做如下更改:
  1. 为支持 TLS 安全连接,确保证书可用(通常默认安装已生成相应文件)
[plain] view plaincopy

  • smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem  
  • smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key  
  • smtpd_use_tls=yes  
使用安全连接可保证通过客户端发送邮件时不被截获和窃取。
  2. 保证邮件服务器的域名存在于下述列表中
[plain] view plaincopy

  • mydestination = daolicloud.com, lab, localhost.localdomain, localhost  
这样收件人为该域名的邮件才会被服务器留存而不是转给其他 MTA。  3. 侦听所有网口
[plain] view plaincopy

  • inet_interfaces = all  
  4. 使用 Maildir 格式存放数据
[plain] view plaincopy

  • home_mailbox = Maildir/  
这种格式的好处是邮件分开存放,MDT 访问时不必加锁。而且有些 MDT 仅支持该格式。
5.  配置邮箱和信件大小限制
[plain] view plaincopy

  • mailbox_size_limit = 2000000000  
  • message_size_limit = 20000000  
这里设置邮箱大小为 2 GB,邮件大小为 20 MB。  最后,执行如下命令使上述配置生效:
[plain] view plaincopy

  • $ sudo service postfix reload  
验证 Postfix 和添加账户
  在本机输入如下命令
[plain] view plaincopy

  • $ telnet localhost smtp  
可看到如下输出Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 lab ESMTP Postfix (Ubuntu)
  进而输入邮件内容,可以发送给任意已有 linux 用户:
[plain] view plaincopy

  • mail from: root@[YourDomain]  
  • rcpt to: [UserName]@[YourDomain]  
  • data  
  • Subject: Hello  
  • Hi, how are you?  
  • Regards,  
  • Admin.  
  • .  
  • quit  
  此时在该用户的 home 目录下,应当可以看到 Maildir 目录。进入 Maildir/new 下可以看到刚才的邮件(文本文件),用任意文本编辑器即可查看其内容。如需其他邮件账户,只需正常添加 linux 用户即可。通常,我们可以把这些专用于邮件的用户的 home 目录集中到一起,命令行如下:
[plain] view plaincopy

  • $ useradd -m -d /home/mail-users/[UserName] -g mail-users [UserName]  
  这里将邮件账户的 home 目录都放置在了 /home/mail-users 下。
  

  到这里为止,是可以发送邮件了,我测试过发送给我的google邮箱和公司邮箱,都收到了来自我个人电脑ubuntu的邮件。不过由于我还没配置DNS服务器,相当于我的电脑是孤立的,无法访问的,所以没法收到邮件,下面的配置无效,仅供参考:
  

  
dovecot 基本设置
  
  编辑 /etc/dovecot/dovecot.conf 文件,做如下更改:
  1. 使用 maildir 格式(与 postfix 格式对应)
[plain] view plaincopy

  • mail_location = maildir:~/Maildir  
  2. 侦听所有默认端口
[plain] view plaincopy

  • listen = *  
  3. 设置安全的远程访问
  为了使用户可以远程访问,必须开启基于用户名 / 密码的验证:
[plain] view plaincopy

  • disable_plaintext_auth = no  
  但与此同时,由于用户名 / 密码都是明文,我们应该要求建立安全连接以防止信息泄露
[plain] view plaincopy

  • ssl = required  
  • ssl_cert_file = /etc/ssl/certs/dovecot.pem  
  • ssl_key_file = /etc/ssl/private/dovecot.pem  
  先前 Postfix 使用的是 TLS,这里的 SSL 与之类似。确保上述文件存在且可用,通常默认文件已经生成好。
  最后,别忘使更改的配置生效:
[plain] view plaincopy

  • $ sudo service dovecot reload  
使用邮件客户端
至此,Postfix 和 Dovecot 最基本的配置已经完成,可以使用邮件客户端(如 Outlook)收发邮件,注意在设置账户时使用上述配置的加密类型,如下图: DSC0000.gif

  【Trouble-shoot】如果服务器有防火墙,确保端口 25 和 993 开放。
增加 SMTP 验证(重要)
  增加此项验证,可以防止恶意或垃圾邮件通过你的 MTA 进行传递。我们使用的验证机制是 SASL,采用和接收邮件账户相同的用户名 / 密码,匿名用户将被拒绝。
  同样需要更改文件 /etc/postfix/main.cf,或者直接使用如下命令(两者等效):
[plain] view plaincopy

  • sudo postconf -e 'smtpd_sasl_auth_enable = yes'  
  • sudo postconf -e 'smtpd_sasl_type = dovecot'  
  • sudo postconf -e 'smtpd_sasl_path = private/auth'  
  • sudo postconf -e 'smtpd_sasl_security_options = noanonymous'  
  • sudo postconf -e 'broken_sasl_auth_clients = yes'  
  • sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'  

相应地,dovecot 需要开放验证接口,编辑文件 /etc/dovecot/dovecot.conf,在 auth default 节中添加如下行,形如:[plain] view plaincopy

  • auth default {  
  •   ......  
  •   socket listen {  
  •     client {  
  •       path = /var/spool/postfix/private/auth  
  •       mode = 0660  
  •       user = postfix  
  •       group = postfix  
  •     }  
  •   }  
  •   ......  
  • }  

为了保证用户名 / 密码安全,建议发送邮件服务器也强制使用安全连接:[plain] view plaincopy

  • sudo postconf -e 'smtpd_tls_auth_only = yes'  
最后别忘使配置生效:

[plain] view plaincopy

  • $ sudo service postfix reload  
  • $ sudo service dovecot reload  
  此时再配置邮件客户端时,需要勾选 SMTP 认证,如下图(Outlook 2010):
DSC0001.gif

  至此,所有设置已经完成,使用邮件客户端收发应该正常,而且可以保证安全性。

  截取我的mail日志信息,供以后查看:
  

  

  Mar  8 19:12:05 ubuntu dovecot: master: Error: Error reading configuration: input is missing end-of-settings line
Mar  8 19:29:11 ubuntu postfix/smtpd[10318]: fatal: no SASL authentication mechanisms
Mar  8 19:30:12 ubuntu postfix/smtpd[10416]: fatal: no SASL authentication mechanisms
Mar  8 19:33:30 ubuntu dovecot: config: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 39: Unknown setting: uth
Mar  8 19:33:40 ubuntu dovecot: master: Error: Error reading configuration: Timeout reading config from /var/run/dovecot/config
Mar  8 19:33:40 ubuntu dovecot: master: Error: service(config): command startup failed, throttling
Mar  8 19:33:50 ubuntu postfix/smtpd[10645]: fatal: no SASL authentication mechanisms
Mar  8 19:34:55 ubuntu dovecot: config: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 40: Expecting '='
Mar  8 19:34:59 ubuntu postfix/smtpd[10668]: fatal: no SASL authentication mechanisms
Mar  8 19:35:05 ubuntu dovecot: master: Error: Error reading configuration: Timeout reading config from /var/run/dovecot/config
Mar  8 19:35:05 ubuntu dovecot: master: Error: service(config): command startup failed, throttling
Mar  8 19:36:38 ubuntu postfix/smtpd[10674]: fatal: no SASL authentication mechanisms
Mar  8 19:53:26 ubuntu postfix/smtpd[11114]: fatal: no SASL authentication mechanisms
Mar  8 19:59:44 ubuntu postfix/smtpd[11156]: fatal: no SASL authentication mechanisms



  

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143033-1-1.html 上篇帖子: ★★★基于FreeBSD和Postfix的邮件系统与邮件列表的web mail安装4.51 下篇帖子: Postfix邮件队列介绍和常用命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表