PMTA+OEMPRO实现方案

电商经验 Alan 10年前 (2015-02-24) 9000次浏览 0个评论 扫描二维码

PMTA+OEMPRO实现方案

上传安装包到/usr/local/src
cd /usr/local/src
sh install.sh

netstat -lnpt查看端口
chkconfig *** off关闭服务(如chkconfig postfix off)

查看PMTA是否启动,未启动执行/etc/init.d/pmta start

Starting PowerMTA: [FAILED]

显示启动失败,输入pmtad –debug进行调试,错误信息

2015-02-10 23:59:26 Startup error: Parse error in line 435 of /etc/pmta/config: number missing

vi +435 /etc/pmta/config找到错误行修改IP和域名:
smtp-source-host yourIP yourdomain

修改结果示例如下

smtp-source-host 104.236.229.211 m.alanhou.org

若有多域名、多IP可直接在该行下添加,再次执行pmtad –debug会发现没有报错信息了
执行/etc/init.d/pmta start启动服务,netstat -lnpt会发现7100端口已经打开

tcp 0 0 0.0.0.0:7100 0.0.0.0:* LISTEN 8747/pmtad

在浏览器中输入104.236.229.211:7100可以查看一个发送情况等的web界面

另外2525是STMP的端口,这个以及7100端口均可在 vi /etc/pmta/config配置文件中修改如下内容来实现:
http-mgmt-port 7100
smtp-port 2525

修改后运行/etc/init.d/pmta进行重启

配置文件中的如下部分用于配置用户名和密码:

<smtp-user tiger>
password tiger123
source {smtpuser-auth}
</smtp-user>

OEMPRO文件默认解压在 /var/www/html/oem/

http://104.236.229.211/oem
输入数据库用户名密码安装完成界面显示登陆地址及登陆信息

Access URL
http://104.236.229.211/oem/app/index.php?/admin/
Username test
Password test1234

进入后台点击Settings > Email Delivery, Delivery Method下拉框中可选择SMTP Connection或PowerMTA,这里选择PowerMTA,PowerMTA功能较SMTP要更为强大
Virtual MTA Name后填入localhost.com, Pick-Up Directory后填入/var/www/tmp, Bounces > Catch-All Domain后填入你的域名

然后在User下新建用户,新建完成后点击Login with user’s own privileges
点击 CREATE NEW LIST创建一个邮件列表

Campaigns > CREATE NEW CAMPAIGN,Campaign Name输入任务名,选中发送列表,去除勾选Publish this campaign in RSS feeds,点击CREATE CAMPAIGN AND EDIT CAMPAIGN EMAIL
点击From Scratch

 

生成DKIM工具
http://www.port25.com/support/domainkeysdkim-wizard/
分别输入域名前缀和域名,如alanhou.org和alanhou会生一段公钥和私钥,私钥配置到PMTA的配置文件中

vi +436 /etc/pmta/config 加入类似如下代码
domain-key localhost,*,/etc/pmta/dkim/localhost.pem

并将上述私钥拷入自己新建的/etc/pmta/dkim/alanhou.org.pem文件中,然后根据提示创建一个TXT记录

通过http://www.spfwizard.net/生成spf记录,ip地址 部分输入104.236.229.211/32,生成内容添加spf记录

可通过发送邮件到check-auth-****=qq.com@verifier.port25.com测试各项记录配置

 

下图为在 Gmail 中查看源代码所显示的各项记录通过的情况:

PMTA+OEMPRO实现方案

配置文件(/etc/pmta/config)相关配置

1.Domain Macro

domain-macro topLevel com, de, co.uk
domain-macro aol aol, aim
用以匹配aol.com, aim.de等域名
<domain $aol.$topLevel>
…settings…
</domain>

2. max-msg-rate 发送频率

 

Oempro配置

email delivery:SMTP或PowerMTA

Load Balancing设置Oempro每间隔多少秒向PMTA发送多少封邮件

pickup路径设置,在/etc/pmta/config中进行设置,tmp改PowerMTA提取邮件的路径,

pickup /var/www/tmp /var/www/badmail

同时需对这两个文件夹设置权限(chmod 777)

为提升体验,可对Oempro默认退订的页面设置退订成功/失败跳转:

templates/weefive/desktop/public/success.tpl

templates/weefive/desktop/public/error.tpl

<script type="text/javascript">
        window.setTimeout("window.location='http://alanhou.org'",1000);
</script>

读取日志

能过PMTA+OEMPRO方案发送邮件会在/var/log/pmta下按日期产生日志,记录发送的情况,投递成功通常会在日志中返回2.0.0 (success),而多数异常情况将会返回5.*.*的状态码,如5.0.0为This account has been disabled or discontinued和5.7.1 (delivery not authorized)等等,关于此类状态码可参考邮件营销之bounce类型。通过如下代码可导出包含这些异常情况的邮箱

cat /var/log/pmta/acct-2015-*.csv | grep '.*5\.[0-9]\.[0-9].*' >> /root/bounce.txt
cat /root/bounce.txt | awk -F "," '{print $6}' >> /root/bounceemail.txt

以上输出两个文件主要是方便读取bounce.txt进行进一步的验证,当然也可以选择直接使用如下语句直接输出邮箱:

cat /var/log/pmta/acct-2015-*.csv | grep '.*5\.[0-9]\.[0-9].*' | awk -F "," '{print $6}' >> /root/bounceemail.txt

而如果想要取出已经不存在的邮箱,可以只提取5.0.*和5.1.*的部分,仅需使用

cat /var/log/pmta/acct-2015-*.csv | grep '.*5\.[0-1]\.[0-9].*' | awk -F "," '{print $6}' >> /root/hardbounceemail.txt

补充:

如果不按照bounce类型来提取,总结了一些日志中的关键字如下:

grep -E 'mailbox\ unavailable|bad\ destination|no\ mail\ hosts|554\ delivery\ error|mailbox\ not|Invalid\ mailbox|no\ answer\ from\ host'

设置收取邮件

yum remove sendmail -y
yum install postfix dovecot -y

打开配置文件/etc/postfix/main.cf,

去除掉inet_interfaces = all的注释

去除掉myhostname = host.domain.tld的注释并将等号后的域名进行相应更改

去除mydomain = domain.tld的注释并将等号后的域名进行相应更改

保存启动/etc/init.d/postfix start(netstat -lnpt查看25端口是否启动)

打开dovecot配置文件/etc/dovecot/dovecot.conf

去除protocols = imap pop3 lmtp的注释(主要是pop3)

去除listen = *, ::的注释

修改/etc/dovecot/conf.d/10-autho.conf

去除disable_plaintext_auth的注释并将值改为no

去除mail_location前的注释并添加值为maildir:~/Maildir

保存启动/etc/init.d/dovecot start(netstat -lnpt查看110端口是否启动)

通过useradd添加用户,passwd设置密码

其它常用命令

清空队列

pmta delete –queue=*/*
喜欢 (3)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址