首页 > 代码库 > SMTP
SMTP
本单元涵盖的主题:
*基本电子邮件配置
*空壳电子邮件服务器配置
*邮件群发
*空壳邮件
*【postfix+dovecot+mysql】
_________________________________________________________________________________________________________________________________________
基本电子邮件配置
[基本电子邮件发送]
*服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过
/usr/bin/sendmail程序进行提交。如果该MTA是最终目标位置,邮件将传递至MDA。否
则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。
*MDA:“邮件发送代理”。MDA将邮件发送至收件人的本地邮件存储位置(默认情
况下是/var/spool/mail/user)。Postfix提供自己的MDA,以发送至基于文件的本地默认
邮件存储位置/usr/libexec/postfix/local.
*转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送
*排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix
每小时执行此操作一次)
*拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝
*退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮
件服务器和/或用户
---------------------------------------------------------------------------------------------------------------------------------
【Postfix】
*Postfix由postfix RPM包提供,并通过postfix服务脚本控制。它是一个由多个协同操作程序构成的模块化程序,它的组件由master进程控制。
*Postfix的主配置文件是/etc/postfix/main.cf,可以使用文本编辑器或postconf命令进行编辑。postconf命令还可用于确定Postfix的所有当前和默认配置设置或逐项确定这些设置。
*默认情况下,Postfix仅侦听来自本地主机的传入电子邮件。若要重新配置postfix以接收从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all
*对电子邮件进行故障排除时,将在/var/log/maillog中保留所有与邮件相关的操作日志,其中包括关于被事件和成功事件的信息。mailq命令(或postqueue -p)显示已排队的所有传出邮件的列表。若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命令(或postqueue -f);否则,postfix将大约每小时尝试重新发送一次,直至邮件被接受或过期.
----------------------------------------------------------------------------------------------------------------------------------
[重要的Postfix配置指令]
可以在/etc/postfix/main.cf文件中找到以下所有指令。所有指令前不可有空格。
#myhostname :
设置所发邮件显示的主机名
例:
#myorigin:
重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器
显示域:myorigin = $mydomain
#inet_interfaces:
控制Postfix侦听传入电子邮件的网络接口。如果设置为loopback-only,仅侦听127.0.0.1和::1,如果设置为all,则侦听所有网络接口。还可以指定特定地址。
默认:inet_interfaces = localhost (all为监听所有)
#mydestination:
收到地址为这些域的电子邮件将传递至MDA,以进行本地发送。(确定你的postfix的收件类型)
mydestination = $myhostname, $mydomain, localhost
*若不能接收到邮件,查看25号端口是否开启
*接收邮件需要关闭防火墙对SMTP的限制
——————————————————————————————————————————————————————————————————
【邮件群发】
修改 /etc/aliases
1.在文件末尾见添加收件用户名单的路径:
“qun“为接收群组名,/etc/...为收件用户名单路径;
postalias /etc/aliases 更新设置
编辑用户名单:
发送格式:
查看:
____________________________________________________________________________________________________
【空壳邮件客户端】
1.伪装收件地址
vim /etc/postfix/virtual:
在了文件末尾添加:
@puer.com(伪装域名) @server.com (真域名)
postconf -e " virtual_alias_maps = hash:/etc/postfix/virtual" 修改virtual_alias_maps为经过哈希加密的/etc/postfix/virtual(virtual.db)
postmap /etc/postfix/virtual 更新设置
systemctl restart postfix 重启
2.伪装发件地址
vim /etc/postfix/generic
文件末尾添加
@server.com (真域名) @puer.com(伪装域名)
postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"
postmap generic
systemctl restart postfix 重启
以上操作即可实现 *@server.com的接发邮件都以*@puer.com实现
——————————————————————————————————————————————————————————————————————————
【mysql+dovecot+apache+postfix】
yum install dovecot -y 安装 豆腐块(接收邮件服务器)
yum install dovecot-mysql -y 建立豆腐块与mysql的连接
mysql -uroot -p
登陆mysql,建立用户postfix,并赋予读写权限;
由postfix用户建立收件用户信息的数据库,包含字段username,password,domain,maildir(邮件目录最后必须加“/“),字段必须与/etc/dovecot/dovecot-sql.conf.ext中第108行相同;
邮件经过加密后存放在dovecot服务器的指定用户目录中;
收件用户通过dovecot从数据库读取用户信息后生成的验证即可查看收到的邮件。
205 systemctl start dovecot.service 启动服务
206 vim /etc/dovecot/dovecot.conf 编辑豆腐块配置文件
48行 允许登陆的ip
49行 关闭禁止明文登陆
207 vim /etc/dovecot/conf.d/10-auth.conf
修改认证机制为“明文“
123行,开启与mysql的连接
208 cp /usr/share/doc/dovecot-2.2.10/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext
209 vim /etc/dovecot/dovecot-sql.conf.ext
添加驱动:mysql
连接方式:本地连接; 数据库名:mailuser(自定义)user(登陆用户名)=*** password=****
默认密码体系:明文
参数含义
*登陆收件服务器用户密码验证设置
选择字段
为选择 表psotfix;%u为带域的完整用户名,%d为域(@****)
*登陆收件服务器用户名验证设置
210 vim /etc/dovecot/conf.d/10-mail.conf
*所收邮件存放位置
systemctl restart dovecot 重启服务
*收件用户访问方式:
以“雷鸟“为例
1.点击Email
2.点击skip
3.输入用户名和邮箱地址,continue
4.点击手动配置
输入邮件服务器的ip或域名,点击re-test,无报错即输入正确,完成后点击Done.
5.登陆邮件服务器
点击“Read messagrs”,输入数据库中设置的密码即可完成登陆
SMTP