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

[经验分享] 使用 Sendmail 在 CentOS 5.5 架设邮件服务器(转)

[复制链接]

尚未签到

发表于 2015-9-15 01:21:06 | 显示全部楼层 |阅读模式
使用 Sendmail 在 CentOS 5.5 架设邮件服务器

  假如你要架设一个有会员管理的网站,可能会遇到诸如“我忘记密码了”、“你有一年没来过了,有空过来瞧瞧吧”这类的问题,一般这类问题都是使用邮件解决的,比如发送一个重置密码的链接或者发送一封提醒邮件。
发送邮件的方法有很多,比如使用外面专业SMTP中继服务(一般收费惊人)、使用类似 Google Apps (Free) 的免费邮件发送服务(限制比较多,比如一天不能超过500封等),而比较廉价且彻底的解决方法应该是在自己的服务器上搭建邮件服务器(SMTP服务器)。假如你使用的是 Linux 系统,那么一般邮件服务器早已安装好了,比如 CentOS(RedHat、Fedora等)内置的 Sendmail 服务程序,你只需设置几下即可使用。
1、域名的设置
首先你要设置域名DNS的MX记录和SPF记录,一般我们只要有如下几条DNS记录就可以了:
记录类型    主机名   目标
------------------------------------
A                  @           123.123.123.123 (这里应该是你的服务器IP)
CNAME      www       your-domain.com
CNAME      SMTP      your-domain.com
MX              @            smtp.your-domain.com
TXT              @            v=spf1 a mx ~all
MX记录是邮件服务器必须依赖的,而TXT(SPF)是用来防止自己的邮件服务器发送的邮件不被当成垃圾邮件(spam email),假如不增加这条记录的话对方邮箱服务要么把你的邮件直接丢弃、要么塞到垃圾邮件文件夹里,所以这条记录也是必不可少的,更多的SPF设置方法参阅这里:http://www.openspf.org/
2、设置 Sendmail
我现在使用的 Sendmail 版本是 8.14,设置方法已经变得非常简单了,首先确保你系统已经有 sendmail 及其相关服务了:
#yum install sendmail  (这个必须的)
#yum install sendmail-cf
#yum install sendmail-devel
#yum install sendmail-milter
然后切换到 /etc/mail 目录,
a、编辑 local-host-names 文件,在里面添加你的域名,比如 yourdomain.com,一行一个域名。
b、编辑 sendmail.mc,把下面两行的注释(这里是 "dnl #")删除掉:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
c、编辑 sendmail.mc,把下面这行:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
当中的“127.0.0.1”替换成“0.0.0.0”,这样外网就可以访问你的 SMTP 服务了,假如你有多个IP地址,而且只想让其中的某一个用作邮件服务,那么就把具体的IP地址填上去。
d、添加一个本地帐号,比如“webmaster”,并设置密码。
e、编辑 virtusertable 文件,增加这样的一行:
webmaster@yourdomain.com        webmaster

f、重新编译一下 sendmail 的设置:

# m4 sendmail.mc > sendmail.cf
# make
g、重启 sendmail 服务,这样就设置好了,你已经可以使用 mail 命令发送邮件了。

3、设置 IMAP 或 POP3 服务

虽然经过上面的设置我们已经可以对外发送邮件了(使用命令或编程方式),而且回复的邮件也能接收,不过如果我们提供IMAP或者POP3服务,就能更方便使用各种客户端查收邮件。dovecot 就是这样的一个服务。
a、先安装 dovecot 服务:
#yum install dovecot
b、编辑dovecot的配置文件,位于 /etc/dovecot.conf,有些Linux发行版有可能位于 /etc/dovecot/conf.d/,在 #protocols 一行下面增加:
protocols imap, pop3
假如你不需要 pop3,则直接去除。
c、编辑dovecot的配置文件,在 #mail_location 下面增加:
mail_location = mbox:~/mail:INBOX=/var/mail/%u

e、由于这样简单配置的IMAP或者POP3的数据传输是没有经过加密的,有些Linux发行版会禁止明文密码登录(当然位于服务器的web程序发送邮件不受此限制),所以还需要在 #disable_plaintext_auth 这行下面增加:
disable_plaintext_auth = no
f、重启 dovecot 服务,现在可以使用邮件客户端软件来测试收发邮件了。

4、在 Web App 里发送邮件

这里只举一个 Java 的例子,在 Java 里发送邮件一般用 JavaMail,不过更简单的方法应该是使用 Apache Commons Email 组件:


Email email = new SimpleEmail();
email.setHostName("smtp.yourdomain.com");
email.setAuthenticator(new DefaultAuthenticator("webmaster", "password"));
email.setTLS(false);
email.setFrom("webmaster@yourdomain.com");
email.setSubject("Hello");
email.setMsg("This is a test mail");
email.addTo("foo@bar.com");
email.send();

参考资料:


CentOS Sendmail Roundcube Configuration Tutorial
http://nixcraft.com/mail-servers/14855-centos-sendmail-roundcube-configuration-tutorial.html

Apache Commons Email
http://commons.apache.org/email/


from: http://ivarptr.blogspot.com/2011/03/sendmail-centos-55.html
from:http://blog.tianya.cn/blogger/post_show.asp?BlogID=1757284&PostID=14301080
http://www.hackbase.com/lib/2005-05-30/8313.html

运维网声明 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-113613-1-1.html 上篇帖子: SendMail如何签名 下篇帖子: linux安装配置sendmail实现邮件发送
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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