【发布时间】:2015-05-06 17:10:12
【问题描述】:
今天,当我发送基本电子邮件时,我使用“邮件”类,它是使用 SwiftMailer 的自定义包装器,如下所示:
<?php
Mail::create('Message title')
->template('Template string or view path. Global variable "var" is "{var}". Current user is {username}.')
->tags(array('var' => 'value 1'))
->from('contact@mydomain.com')
->to('mail@example.com', array('username' => 'Boris'))
->transport(Mail::SMTP)
->send();
它适用于基本电子邮件,但由于多种原因不能用于发送时事通讯:
- 没有池管理
- 无延迟发送
- 无跟踪
所以我想了一种方法来集中更复杂的电子邮件管理。我做了一个架构:
我不希望远程服务器存储任何联系信息,只存储活动、收件人和统计信息,如下图所示:
“Recipient”表的“data”字段用于存储自定义数据结构,当 API 被要求提供有关收件人的信息时,这些数据结构将被发回.例如:
<?php
$result = NewsletterAPI::getRecipientsViewReport($campaignRef);
//
// Will contain something like :
// Array
// (
// [recipients] => Array
// (
// [0] => Array
// (
// [email] => toto@gmail.com
// [opened] => 3
// [last_open_date] => '2015-02-02 12:32:23',
// [data] => Array
// (
// [id] => 123
// )
// )
// [1] => Array
// (
// [email] => tata@hotmail.com
// [opened] => 0
// [last_open_date] => null,
// [data] => Array
// (
// [id] => 17
// )
// )
// )
// )
远程服务器只关心发送电子邮件并获取有关它们的统计信息。无论电子邮件地址背后是什么实体或如何管理用户。
它只阻止用户访问不属于它的数据,并阻止非管理员用户访问管理 API 方法(如创建用户)。
这种方式很容易集成到任何网站中,我只需要存储我要发送邮件的帐户的 api 密钥(比如在我的“User”实体)。
所以我的问题
首先,您如何看待这种架构?
在实际使用中,电子邮件的数量不应该很大(每周几千个),但我希望系统至少具有稳健性。
除此之外,我能想到三个主要问题:
- 被列入黑名单,
- 统计结果不好,因为我不知道除了使用跟踪图像之外的任何其他方法来跟踪视图,而且它很容易被阻止,
- 从我读过的内容来看,检测退回似乎相当复杂,而且我没有这方面的经验。
所以我做了一些研究来寻找可以处理这个问题的专业服务,比如:
等等.. 但是他们都想管理联系人和很多我不关心的事情。
我只想要一个完全没有用户界面的服务,它的功能类似于我上面描述的:
- 动态帐户创建(仅适用于管理员帐户),
- 每次向自定义地址列表发送电子邮件,没有任何限制,也没有预先创建的任何类型的邮件列表,
- 轻松获取:
- (发出请求的用户的)活动列表,
- 活动的统计数据,
- 具体地址统计,
- 还有.. 仅此而已!
非常感谢你看完了,希望能找到解决办法。
问候。
【问题讨论】:
标签: php api email newsletter