说一下,这个是我边找资料边安装边记录的内容,有些地方不完全都是正确的,但是这也确实能够学到很多东西。安装成功后只做了发送测试,但是没有做接受测试。至少把想要的功能实现了。如果想完整的安装请参考文章最后面的链接。找了很多资料,有价值的貌似就
说一下,这个是我边找资料边安装边记录的内容,有些地方不完全都是正确的,但是这也确实能够学到很多东西。安装成功后只做了发送测试,但是没有做接受测试。至少把想要的功能实现了。如果想完整的安装请参考文章最后面的链接。找了很多资料,有价值的貌似就这么几篇。剩下的全部都是粘来粘去。当然我的也是粘贴拼凑的但是至少我测试过。
强调一点 centos 6 没有 /etc/dovecot.conf 文件
在CentOS下,sendmail一般默认是随操作系统一起安装的。如果安装系统时没有安装sendmail服务,手动安装sendmail也很简单:
# yum install -y sendmail
# yum install -y sendmail-cf
2、 Senmail的SMTP认证配置(不需要认证的可忽略此步)
首先确认saslauthd服务是否安装或启动。
安装saslauthd服务:# yum install -y saslauthd
启动saslauthd服务:# service saslauthd start
testsaslauthd -u username -p password
如果显示0: OK “Success.”则表明saslauthd工作正常;
{输入 ./testsaslauthd -u userID -p 'yours.passwd'
用户名密码都感觉没输出,却报告
0: NO "authentication failed"
这里其实是让 输入 当前用户的 用字和密码 ==||| 我一开始就不知道
[root@localhost sasl2]# testsaslauthd -u username -p password
0: NO "authentication failed"
}
(1) 配置Senmail的SMTP认证
# vi /etc/mail/sendmail.mc
view plain copy
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN
PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5
CRAM-MD5 LOGIN PLAIN')dnl
将上面两行的dnl去掉。在sendmail文件中,dnl表示该行为注释行,是无效的,因此通过去除行首的dnl字符串可以开启相应的设置行。
[这两行默认是被dnl(注释掉的)掉的,要去掉它的注释,TRUST_AUTH_MECH”的作用是使sendmail不管access文件中如何设置,都能relay那些通过EXTERNAL,
LOGIN, PLAIN,
CRAM-MD5或DIGEST-MD5等方式验证的邮件,注意这里是对需要relay的邮件进行验证,这点很重要,只有这样通过验证的邮件才会被relay以防止sendmail服务器被滥用,confAUTH_MECHANISMS的作用是确定系统的认证方式。Outlook
Express支持的认证方式是LOGIN。
然后将DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,
Name=MTA')dnl这行dnl(注释)掉,不然从其他计算机使用foxmail等客户端都将无法使用sendmail发邮件,因为这行的设置表示只接收本机的邮件。将这行注释掉也可以,或者改成DAEMON_OPTIONS(`Port=smtp,Name=MTA')dnl也可以。总之如果想进行邮件接收的话,就不要在这行里加入M=a的配置(注意大小写),因为它是对connection进行验证,这样对接收的邮件,sendmail也会先要求对这个连接验证,而其他邮箱发给你的邮件的这个连接是无法进行验证的。
]
#配置支持的认证方式,配置后通过验证的用户都可以发邮件,不用在access里配置Relay
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,
Name=MTA’)dnl #修改侦听范围
DAEMON_OPTIONS(`Port=587,Name=MSA,M=a')dnl
#增加通过587端口发邮件
这里要说一句,不要改
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
m4 /etc/mail/sendmail.mc >
/etc/mail/sendmail.cf #生成配置
7.添加sendmail接受邮件的域名;
vi /etc/mail/local-host-names
添加域名如: an.test //每个域名一行
[打开/etc/mail/local-host-names
加入你 @后面的邮箱地址。比如我这里是otto@linuxedentest.com
那么,你要在local-host-names文件里的第二行添加:
linuxedentest.com
保存
当然
local-host-names还可以设置邮箱别名,这个不多说,大家查文档看看。]
{[telnet 安装
yum install telnet-server
步骤2:安装完毕之后,需要对你所开放的telnet服务的一些参数作出必要的设定。
在预设的/etc/xinetd.d/telnet内容是这样的:
[root@linux ~]# vi /etc/xinetd.d/telnetservice telnet
{ flags = REUSE <==额外的参数使用
REUSE socket_type = stream <==使用TCP的封包格式
wait = no <==可以有多个连线同时连进来
user = root <==启动者预设为
root server = /usr/sbin/in.telnetd <==使用的是这支程式!
log_on_failure += USERID <==若登入错误,『加计』记录使用者ID
disable = yes <==此服务预设关闭!
}
}
8.重新启动sendmail并验证能否正常使用;
service sendmail restart
chkconfig sendmail on
telnet smtp_server 25
HELO domainname
250 domainname Hello [10.57.28.221], pleased to meet you
AUTH LOGIN
#输入这个后,使用base64编码的用户名密码,使用下面一句话来生成
perl -MMIME::Base64 -e ‘print encode_base64(“word”)’
334 VXNlcm5hbWU6
dGVzdA== # base64编码后的test
334 UGFzc3dvcmQ6
YWJjZC4xMjM0 #base64编码后的abcd.1234
235 2.0.0 OK Authenticated
MAIL FROM:test@an.test
250 2.1.0 test@an.test… Sender ok
RCPT TO:test@an.test
250 2.1.5 test@an.test… Recipient ok
DATA # 开始邮件的内容
Subject:test #邮件标题
This a test email. #邮件正文
. #用一个.结束邮件
{我的操作
[root@localhost /]# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.14.4/8.14.4; Fri, 18 Jan
2013 11:01:23 +0800
AUTH LOGIN
334 VXNlcm5hbWU6
dGVzdA==
501 5.5.4 cannot decode AUTH parameter dGVzdA==
MAIL FORM:TEST@guo.test
501 5.5.2 Syntax error in parameters scanning "FORM"
500 5.5.1 Command unre"ognized: "
MAIL FROM:test@guo.teset
250 2.1.0 test@guo.teset... Sender ok
RPCT TO:test@guo.test
500 5.5.1 Command unrecognized: "RPCT TO:test@guo.test"
RCPT TO:test@guo.com
250 2.1.5 test@guo.com... Recipient ok (will queue)
^]
}
9.安装dovecot支持pop3;
yum install dovecot
10.配置dovecot.conf
vi /etc/dovecot.conf
去掉以下几行前边的#并修改;
protocols = imap pop3
disable_plaintext_auth = no
mail_location = mbox:/var/mail:INBOX=/var/mail/%u
11.启动dovecot;
service dovecot start
chkconfig dovecot on
{[我的操作:
centos 6 没有 vi /etc/dovecot.conf
打开dovecot.conf文件,搜索include_try,可以发现以下代码
# Optional configurtaions, don't give an error if it's not
found:
!include_try /etc/dovecot/conf.d/*.conf
,在/etc/dovecot/conf.d/目录下已经有一个
那么可以猜测他们是互相引用的。然后开始编辑 10-mail.cof 文件中 mail_location =
mbox:/var/mail:INBOX=/var/mail/%u
和 vi 10-auth.conf 文件中的disable_plaintext_auth = no 修改
[root@localhost dovecot]# vi dovecot.conf
vi dovecot.conf
# Protocols we want to be serving.
#protocols = imap pop3 lmtp
protocols = imap pop3 最后改为这个
[root@localhost conf.d]# vi 10-ssl.conf
# SSL/TLS support: yes, no, required.
ssl = no
]}
<摘引:
日志出现tried to use disabled plaintext auth
outlook登陆不进
/etc/dovecot/conf.d目录下有一个10-mail.conf的文件。内容如下:
# mail_location = maildir:~/Maildir
mail_location =
mbox:~/mail:INBOX=/var/mail/%u
# mail_location =
mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
取消注释protocols = imap pop3 lmtp
disable_plaintext_auth=no
ssl_disable = no
取消注释,并添加你的文件中或许没有的内容。
我的是dovecot-2.1.1-2_132.el5,修改方法如下:vi
/etc/dovecot/conf.d/10-auth.conf去掉disable_plaintext_auth前面#,修改为disable_plaintext_auth = novi /etc/dovecot/conf.d/10-ssl.conf修改为ssl =
no重启dovecot服务,OKservice dovecot restart
>
<
配置Ubuntu邮件服务器,Ubuntu Server
10.04,安装postfix,安装dovecot-postfix,修改dovecot.conf配置文件,启用disable_plaintext_auth无效,经研究发现需要修改conf.d目录下的配置文件……
Ubuntu官方文档这部分的配置叙述得并不详细,相关信息是在一篇日文博客中找到的。
9.10 以前の ubuntu で提供されている Dovecot では /etc/dovecot/dovecot.conf
ファイルを直接?集するしかなかった。
どのバ?ジョンからかは?べていないが、少なくとも 10.04 の Dovecot では include_try
ディレクティブが??毪丹臁?etc/dovecot/dovecot.conf ファイルの中で?宜この include_try
ディレクティブを使って、/etc/dovecot/conf.d ディレクトリにある????子が .conf
のファイルと、/etc/dovecot/auth.d ディレクトリにある????子が .auth
のファイルを?み?むようになった。
ただし、10.04 になった今でも一部の?定については /etc/dovecot/dovecot.conf
ファイルを直接?集する必要がある。
9.10以前的ubuntu提供的Dovecot只能直接编辑/etc/dovecot/dovecot.conf文件。
没有调查从哪个版本开始,至少10.04的Dovecot导入了inlude_try指令,/etc/dovecot/conf.d文件中使用include_try指令,读取/etc/dovecot/conf.d目录中扩展名为.conf的文件和/etc/dovecot/auth.d目录中扩展名为.auth的文件。
但是,目前10.04中的一部分设定仍然需要直接编辑/etc/dovecot/dovecot.conf文件。
打开dovecot.conf文件,搜索include_try,可以发现以下代码
# Optional configurtaions, don't give an error if it's not
found:
!include_try /etc/dovecot/conf.d/*.conf
因为是直接安装dovecot-postfix这个包,在/etc/dovecot/conf.d/目录下已经有一个经过配置的01-dovecot-postfix.conf文件,将disable_plaintext_auth设置添加到这个文件即可生效。没试过分别安装postfix和dovecot再整合是什么情况。
Ubuntu上的其它软件也启用了include_try,比如Apache:
Google了一下,CentOS的一些配置中也涉及到了conf.d目录。
Google关于Linux的include_try和Optional
configurations的信息,返回的结果很少,难道这是很基础的Linux概念?
引入include_try的优点是:可以保持初始的.conf文件,conf.d目录下可以导入多个配置文件,可以将配置分配在不同的文件中,可以快速地隔离出一个错误的配置修改。
缺点方面,多个配置文件增加了复杂度。目前Ubuntu有些配置需要修改主配置文件,有些配置则只能添加在conf.d目录下的配置文件中才能生效。同时因为很多文档都基于单个conf配置文件编写,文档不能跟上更是增加了配置过程中的混乱。
>
touch mail.php
[code]
mail('your_email_addr@gmail.com','subject','message body');
?>
[/code]
chmod a+x mail.php
php mail.php
{[如果 php 里找不到 php.ini 需要CP 一个
源码里面的php.ini-development或php.ini-production
到/usr/local/php/lib 为 php.ini 我的这个主机以为不是我配置的所有就没有
用php内置函数通过sendmail发送信件的话,可以在php.ini中修改:
sendmail_path = /usr/sbin/sendmail -f service@domain.com -t ?i
//我设置了但是没有用
编辑 /etc/mail/sendmail.mc 开启下列各项
MASQUERADE_AS(`mydomain.com')dnl 是否对信息作伪装
修改 MASQUERADE_AS(`text.com')dnl 伪装成text.com域名
FEATURE(masquerade_envelope)dnl 是否对整个域(包括子域)做伪装
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl 对localhost域做伪装
MASQUERADE_DOMAIN(localhost.localdomain)dnl
将locahost.com域伪装成text.com
斜体字部分 我做伪装结果不能用,不知道为什么 总是localhost.localdomain 最后是改
的host文件 才做出了伪装。
]}