今天当我发送基本的电子邮件时,我使用了一个“Mail”类,它是一个使用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();
它适用于基本电子邮件,但由于多种原因无法用于发送简报:
所以我想到了一种集中更复杂的电子邮件管理的方法。我做了一个架构:
我不希望远程服务器存储任何联系信息,只有广告系列,收件人和统计信息,如下图所示:
“收件人”表中的“数据”字段用于存储自定义数据结构,当要求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密钥(比如在我的“<”中添加“ mailing_api_key ”字段strong>用户“实体”。
首先,您如何看待这种架构?
在实际使用中,电子邮件的数量不应该非常大(每周几千),但我希望系统最小化。
除此之外,我还能想到三个主要问题:
所以我做了一些研究,找到可以处理这个的专门服务,比如:
等等..但他们都希望管理联系人和很多我不关心的事情。
我只想要一个没有用户界面的服务 ,这与我上面描述的有关:
非常感谢你,如果你已经阅读了所有内容,我希望能找到解决方案。
问候。
答案 0 :(得分:2)
大多数(大型)公司只使用像mailchimp这样的第三方API。只需订阅一些公司简报并查看电子邮件标题。
如果预算超过数百万的公司将使用第三方通讯公司,那么这是有原因的。垃圾邮件过滤器和您还不知道的问题会有很多麻烦......不同国家甚至有不同的法律。 (例如:在德国,您必须在电子邮件中提供取消订阅链接。)
那些第三方通讯公司提供了一个可以集成到php中的API。