+86 189 8218 1436Mon. - Fri. 10:00-22:00

使用 Sendmail 架设邮件服务器

使用 Sendmail 架设邮件服务器

经济实惠的服务器代维费用及报价,让中小企业都能用上专业的服务器代维服务!

服务器代维外包服务 让您省心又放心 小程序HTTPS配置 一键ssl全站配置 正版EV OV_SSL证书 顶级证书长期享用 DDOS/CC攻击防御 有针对性的攻击防御
木马病毒清除 彻底的清除专家 网站中毒处理 快速网站故障处理专家 服务器故障处理 一站式解决服务器问题 数据找回/恢复 重要数据秒级找回
数据库优化 提升网站访问速度神器 数据迁移 网站搬家快方法 漏洞扫描/渗透测试 网站安全检测 网站故障排查/修复 一键排查故障/修复
宝塔Linux面板安装服务 环境配置专家 WordPress代维托管 一次性收费包您满意 网站程序安装指导 多年安装经验
肉鸡处理,中毒处理
肉鸡处理,中毒处理  
 

使用 Sendmail 架设邮件服务器

Sendmail 是一款简单易用的邮件服务软件(邮件传输代理、MTA),许多 Linux 发行版都内置 Sendmail 程序,只需简单设置即可将服务器配置为可收发邮件的服务器,下面以 CentOS 6作为例子。

1、域名的设置
首先需要设置域名 DNS 的 MX 记录和 SPF 记录,一个典型的域名设置如下:

记录类型    主机名   目标
------------------------------------
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记录的话对方邮箱服务器可能会把你发出的邮件直接丢弃、或者塞到垃圾邮件文件夹里,所以这条记录现今是必不可少的,更多的 SPF设置方法参阅这里

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”,以允许外网可以访问你的服务器,假如有多个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();

参考资料:
1、CentOS Sendmail Roundcube Configuration Tutorial
2、Apache Commons Email

北京 上海 天津 重庆 河北 山东 辽宁 黑龙江 吉林 甘肃 青海 河南 江苏 湖北 湖南 江西 浙江 广东 云南 福建 海南 山西 四川 陕西 贵州 安徽 广西 内蒙古 西藏 新疆 宁夏 澳门 香港 台湾