使用 PHP 有效地使用 Google App Engine 发送大量电子邮件?

Posted

技术标签:

【中文标题】使用 PHP 有效地使用 Google App Engine 发送大量电子邮件?【英文标题】:Effectively using Google App Engine to send lots of emails using PHP? 【发布时间】:2011-03-26 08:59:55 【问题描述】:

我目前在 MediaTemple 的 Grid 服务器上有一个客户端网站,该网站很快将移至虚拟专用服务器。目前,它正在使用一些技巧来利用 cron 作业和数据库排队(以避免超出 MediaTemple 设置的限制)来涓涓细流发送他的大量电子邮件。

我们不能使用第三方解决方案(如 MailChimp 等),因为客户支付的价格太高了(他的邮件列表上有 75,000 多人)。因此,经过大量研究后,我发现使用 Google App Engine 基本上是一种可扩展的方式来发送大量电子邮件是一个可行的选择。

他的网站目前使用 php。我最终确实想使用 Python/Django,但暂时不是……有几件事我不太明白……比如有一个名为“example.appspot.com”的应用程序,可以吗?是他网站上的子域(如 mailapp.example.com)?在阅读了 Google App Engine 上的用户指南之后,应用程序使用的电子邮件地址似乎是应用程序的管理员(如 admin@example.appspot.com)......必须是这样吗?不可能是 example@example.com 之类的东西?

我了解发送这么多电子邮件意味着我必须在应用程序上启用计费功能。我知道我可以发送多少个配额。我什至看到了可以帮助轻松设置的代码:http://github.com/tow/appengine-mailer

理想情况下,我希望替换发送电子邮件的 PHP 代码(使用 mail() 等),并改为使用 Google App Engine 发送。

有没有人成功完成过这种设置?谁能帮我拼出所需的步骤?或者提供使用这种系统的任何陷阱?

【问题讨论】:

在阅读这个问题标题时,我是唯一一个想到垃圾邮件的人吗? 【参考方案1】:

您可以使用 appengine for PHP 以这种方式向用户发送邮件:

<?php

    require_once 'google/appengine/api/mail/Message.php';
    use google\appengine\api\mail\Message;

    $mail_options = [
        "sender" => 'you@example.com',
        "to" => $_POST['email'],
        "subject" => "Type a subject here",
        "textBody" => "Type message here",
            ];

    try 
    $message = new Message($mail_options);
    $message->send();
     catch (InvalidArgumentException $e) 
    echo $e;
    

?>

【讨论】:

【参考方案2】:

你的第一个问题:

调用应用程序 'example.appspot.com',这可以是 他网站上的子域(例如 mailapp.example.com)?

是的,正如the FAQ 所说:

Google App Engine 可与 Google Apps 提供自定义域 面向互联网的名称 应用程序,例如 myapp.com。

默认情况下,当您部署您的 Google App Engine 上的服务,您的 服务将在 [您的应用程序 ID].appspot.com。在 为了提供更强大的品牌 经验为您的应用程序,你 可能还希望该应用程序是 可在 [my-brand].com 或 www.[my-brand].com.

为了设置这些品牌 访问您的服务的位置,您 必须证明您拥有该域 命名或购买域名 通过谷歌。谷歌应用引擎 允许您证明您的所有权 域名和购买新域名 使用 Google Apps。

你的第二个问题:

应用使用的电子邮件地址是 应用程序的管理员(例如 admin@example.appspot.com)... 有 会这样吗?不可能 类似 example@example.com?

当然,您可以使用自己想要的 Google 用户 ID 作为应用的管理员用户。

我知道发送这么多 电子邮件意味着我必须启用 在应用程序上计费。一世 了解仍有配额 我可以发送多少。

是的,the docs、$0.0001 是每个收件人通过电子邮件发送的。邮件列表中有 75,000 人,每封邮件发送给他们所有人,这就是 $7.50。根据these other docs,免费配额是每天通过电子邮件发送 2,000 名收件人,绝对最大值为 740 万(也有速率限制,即在免费和最大配额中每分钟邮寄多少收件人)。

理想情况下,我想替换 PHP 代码 它发送电子邮件的位置(使用 mail() 等)并通过 Google 发送 而是 App Engine。

抱歉,无法帮助您,我使用 Python 而非 PHP 运行 App Engine。但我听说,使用Quercus,可以在 App Engine 的 JVM“端”上运行 PHP。

【讨论】:

以上是关于使用 PHP 有效地使用 Google App Engine 发送大量电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

不能简单地强制关注使用 HtmlService 的独立 Google App 中的文本输入?

为啥我在 Google App Engine 上使用 JDO 的查询中出现转换错误?

在 Google In-App Billing API 中使用啥作为开发人员有效负载?

如何在google colab中有效地使用内存?

Cloud Storage 上的 Google App Engine 文件

在Google App Engine Standard中配置嵌套的静态文件夹 - PHP环境