centos 6 下 sendmail 安装
2019独角兽企业重金招聘Python工程师标准>>>
说一下,这个是我边找资料边安装边记录的内容,有些地方不完全都是正确的,但是这也确实能够学到很多东西。安装成功后只做了发送测试,但是没有做接受测试。至少把想要的功能实现了。如果想完整的安装请参考文章最后面的链接。找了很多资料,有价值的貌似就这么几篇。剩下的全部都是粘来粘去。当然我的也是粘贴拼凑的但是至少我测试过。
强调一点 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. <doc/wiki/SSL.txt>
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官方文档这部分的配置叙述得并不详细,相关信息是在一篇日文博客<ubuntu 10.04 をメールサーバーに (Dovecot 編)>中找到的。
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:<Apache configuration files on Ubuntu>
Google了一下,CentOS的一些配置中也涉及到了conf.d目录。
Google关于Linux的include_try和Optional configurations的信息,返回的结果很少,难道这是很基础的Linux概念?
引入include_try的优点是:可以保持初始的.conf文件,conf.d目录下可以导入多个配置文件,可以将配置分配在不同的文件中,可以快速地隔离出一个错误的配置修改。
缺点方面,多个配置文件增加了复杂度。目前Ubuntu有些配置需要修改主配置文件,有些配置则只能添加在conf.d目录下的配置文件中才能生效。同时因为很多文档都基于单个conf配置文件编写,文档不能跟上更是增加了配置过程中的混乱。
>
touch mail.php
[code]
<?php
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文件 才做出了伪装。
]}
http://linux.vbird.org/linux_server/0380mail.php#mra_setup
http://blog.renhao.org/2011/09/resolve-php-mail-function-could-not-send-a-mail/
http://www.2cto.com/kf/201203/124805.html
http://sunting.blog.51cto.com/1244382/282223/
http://www.cnblogs.com/fjsbf/archive/2010/01/26/1656706.html
http://www.sunchis.com/html/os/linux/2012/0503/407.html
http://blog.sina.com.cn/s/blog_61184a0f0100hwvg.html#bsh-24-174701087
http://www.linuxeden.com/forum/thread-160417-1-1.html
http://blog.itechol.com/space-33-do-blog-id-1252.html
转载于:https://my.oschina.net/startphp/blog/102786
centos 6 下 sendmail 安装相关推荐
- CentOS 6下编译安装Nginx
CentOS 6下编译安装Nginx By:老宁 一.准备make环境 yum -y install gcc gcc-c++ automake autoconf libtool make 二.准备 ...
- php安装redis扩展报错,CentOS 67下php5+安装redis扩展组件
首先去redis官网,点击 clients 链接,在 Browse by language 内点击 PHP 项,以phpredis为例,打开这个扩展扩展组件的链接,到github下载此扩展组件. 下载 ...
- webmin升级php,Centos linux下webmin安装及配置
Centos linux下webmin安装及配置 2012-1-30 18:14 Monday 分类:Linux 评论(49) 浏览(18247) webmin是一个用浏览器来管理系统的工具. 1.下 ...
- centos英文版下如何安装中文语言
centos英文版下如何安装中文语言 ... centos安装过程中,安装语言包时选择了english,在安装完毕后浏览中文网页或查看中文文档时总是宣誓乱码,因此需要安装中文语言包,如果不能 从安装盘 ...
- 【数据分析R语言系列】R和RStudio的下载和安装, R在 Ubuntu 和CentOS 系统下的安装
文章目录 准备工作 R 的下载和安装 RStudio 的下载和安装 配置(可选) 常见问题与方案 R 在 Linux 系统下的安装 Ubuntu 从源安装 R CentOS 从源安装 R Rtools ...
- MYSQL基础之centos 6下二进制安装mariadb
安装mysql的方法: 1.源代码:编译安装 2.二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用 3.程序包管理器管理的程序包 项目官方最新版地址:https://downloads.m ...
- centos 7下redis安装和配置
1,通过rz命令将本地的tar.gz包上传到linux服务器上home目录下;我这里用的是redis-3.0.2.tar.gz,上传到home下: 2.tar -xvf 命令解压文件: 3,进入到re ...
- centos mysql2_centos7下在线安装mysqlMySQL内存调优
原文链接: MySQL Memory Allocation -- by Rick James 原文日期: Created 2010; Refreshed Oct, 2012, Jan, 2014 翻译 ...
- php 编译mcrypt,centos 6下编译安装php时安装mcrypt支持库
centos6本身不带mcrypt库的支持,手工编译php时,还需要先安装该库,这里有两个途径 1. 使用第三方源实现yum安装,推荐使用RPMforge,在centos下配置该yum源,配置后即可尝 ...
最新文章
- PTA 基础编程题目集 7-20 打印九九口诀表 C语言
- 5800对于存储卡密码设置问题
- 浙江理工大学-2018-2019学年面向对象程序设计A-期末复习资料
- 22/100. Find All Anagrams in a String
- Object overview 页面点击Edit button白屏问题
- MapReduce源码刨析
- seo 伪原创_seo伪原创工具(解析新云查新型伪原创模式工具)
- Linux进阶之VMware Linux虚拟机运行提示“锁定文件失败 虚拟机开启模块snapshot失败”的解决办法...
- 2018年3月11日论文阅读
- 手动卸载McAfee
- snort安装使用教程
- 中铁二局全面推行建筑工地务工人员实名制管理
- OSChina 周三乱弹 —— 可乐帝国军人们,集结了
- 如何在Mac上裁剪图片
- JavaScript基本第一天总结
- 现在应该继续投资公链?还是投资应用级协议?
- 做人温和一点,做事狠一点。
- html引用css文件无效,关于html引用文件无效。
- php教程--案例4(判断闰年)
- 三分钟了解一下深度学习
热门文章
- 802.11a/b/g/n无线协议详解
- 正确认识同轴与双绞线传输技术
- 设置GPS模块ublox 的波特率和数据输出格式
- 报错W: APT had planned for dpkg to do more than it reported back (9 vs 16).解决方式
- 解放双手,高效办公!这42个python自动化案例你不得不看
- 用什么软件可以把歌曲截取一部分
- ELYFI爱立丰举办“2021中国NFT与餐饮新思路高峰论坛” 圆满成功
- Python画出来的六维图,见过么?
- c#求长方形的面积周长公式_C#语言-输入三角形或者长方形边长,计算其周长和面积并输出...
- IST:Iterative Shrinkage/Thresholding和Iterative Soft Thresholding