uluru / antibounce
反弹插件能够防止已弹回的电子邮件再次发送。
1.0
2015-09-30 03:16 UTC
Requires
- php: >=5.5
- aws/aws-php-sns-message-validator: 1.1
This package is not auto-updated.
Last update: 2024-09-28 20:03:30 UTC
README
「SES - SNS - 应用程序」的集成,用于获取弹回信息,并在应用程序侧对目标电子邮件地址进行处理。
注意)如果应用程序服务器有IP限制等,则来自SNS的通知将不会收到,因此需要放开SNS的通信限制。
SES, SNS的区域为 US-EAST-1 (北部弗吉尼亚)
IP列表: https://forums.aws.amazon.com/ann.jspa?annID=2347
1. 程序准备
1-1. 创建bounce_logs表
创建一个用于保存弹回历史的表(bounce_logs)。 (不需要创建Model)
1-2. 在composer.json中安装本插件和aws-php-sns-message-validator
"repositories": [{
"type": "package",
"package": {
"name": "plugins/anti_bounce",
"version": "1.0",
"type": "cakephp-plugin",
"require": {
"composer/installers": "*"
},
"source": {
"url": "git@github.com:uluru/anti_bounce.git",
"type": "git",
"reference": "master"
}
}
}]
"extra": {
"installer-paths": {
"app/plugins/anti_bounce": ["plugins/anti_bounce"]
}
}
"require": {
"plugins/anti_bounce": "1.0",
"aws/aws-php-sns-message-validator": "1.1"
}
1-3. 更新配置文件
routes.php
Router::connect(
'/anti_bounce/receive',
array(
'plugin' => 'AntiBounce',
'controller' => 'AntiBounce',
'action' => 'receive'
)
);
bootstrap.php
Configure::write(
'AntiBounce',
array(
'topic' => '*****',
'mail' => '*****',
'settings' => array(
'stopSending' => false, // true = stop mail sending, false = just write log
'email' => array(
'model' => 'User',
'key' => 'id',
'mailField' => 'mail_address',
), // メールアドレスのレコードを指定する
'updateFields' => array(
array(
'model' => 'User',
'key' => 'id',
'fields' => array(
'send' => 0,
'active' => 0,
)
)
) // stopSending = true の場合に更新するレコードの設定
)
)
);
2. 在SES中注册电子邮件地址
「验证新电子邮件地址」→「验证此电子邮件地址」→点击发送来的电子邮件地址链接,激活电子邮件地址
在bootstrap.php的mail项中填写已激活的电子邮件地址。
3. 在SES控制台中创建SNS主题
- 「电子邮件地址」→ 点击第2步中注册的电子邮件地址
- 点击「通知」标签的「编辑通知配置」
- 点击「编辑通知配置」
- 输入适当的「主题名称」和「显示名称」
- 点击「创建主题」后,在弹回项的下拉菜单中选择创建的主题。
4. 激活SNS主题
第3步中创建的SNS主题已在SNS的弗吉尼亚北部(区域:US-EAST)创建。
将Topic ARN项填写到bootstrap.php的topic项中。
点击ARN链接→点击「创建订阅」
通信协议:https
端点:https://*****.****/anti_bounce/receive
几秒后重新加载控制台,
Subscription ID = PendingConfirmation
↓
Subscription ID = arn:aws:sns:us-east-1:\*\*\*\*
以确认端点的通信。
5. 测试发送bounce电子邮件
现在已准备好SES - SNS - 应用程序集成,因此可以通过SES进行bounce电子邮件的测试发送。
测试邮件发送方法
- http://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/getting-started-send-from-console.html
- https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/mailbox-simulator.html
然后,将通知到第4步中设置的端点的弹回邮件信息。
之后,如果应用程序发送的电子邮件地址(弹回的电子邮件地址)有相关的记录,则在bootstrap.php中设置的模型将被更新。