SwiftMailer 批量电子邮件使我的服务器超时

2024-02-21

我意识到,batchEmail 不再是新 SwiftMailer 的一部分。所以我做了这个脚本:

<?
//
// GC PRESS EMAILER v5
//
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once("config.php");
include_once("hawkmail/mail/lib/swift_required.php");
$c=mysql_connect($dbh,$dbu,$dbp);
function SendEmail(){
    // DB
    $s=mysql_query("SELECT * FROM `newgc`.`press_list`");
    // Process Color Listing Loop
    while($r=mysql_fetch_array($s)){
    // ###########################
    // START LOOP
    // ###########################
        $name=$r['name'];
        $email=$r['email'];
        $to=array(''.$email.''=>''.$name.'');
        include("hawkmail/templates/press.php");
        # Email subject
        $str=$name;
        $str=substr($str, 0, strrpos($str, ' '));
        $subject='Dear '.$str.', you are invited to our Exclusive Party Collection Press Day!';
        # send message
        include("hawkmail/settings.php");       
    }
    // ###########################
    // END LOOP
    // ###########################
}
SendEmail();
?>

数据库有200条记录。我运行了脚本,它发送了几封电子邮件,然后超时

504网关超时

The name and email记录就像

约翰·史密斯[电子邮件受保护] /cdn-cgi/l/email-protection

很朴实。和我的hawkmail/settings.php这是:

# mail
$smpturl="smtp.sendgrid.net";
$mailu="sitesitesite";
$mailp="sitessssssssssss";
$from=array("[email protected] /cdn-cgi/l/email-protection"=>"site.com");

# login credentials & setup Swift mailer parameters
$transport=Swift_SmtpTransport::newInstance($smpturl, 587);
$transport->setUsername($mailu);
$transport->setPassword($mailp);
$swift=Swift_Mailer::newInstance($transport);

# create a message (subject)
$message=new Swift_Message($subject);

# attach the body of the email
$message->setFrom($from);
$message->setBody($html, 'text/html');

$message->setTo($to);
$message->addPart($text, 'text/plain');

# actually send the message
if($recipients=$swift->send($message, $failures)){}else{}

无论如何,是否有增加 PHP 超时的限制(我使用 Ubuntu 和 Nginx),或者是否有 BatchMail() 的替代方案,真的不明白为什么它被删除。

有人可以发布使用新的 swiftmailer 的批量邮件脚本的示例吗?


发送电子邮件是网上最复杂的事情。

它是第二大最常用的服务,也是最常被滥用的服务。

我构建了自己的自定义电子邮件平台来发送批量电子邮件。

您遇到的超时是由于 Apache 和 PHP 执行限制造成的。

您需要将其作为 CLI 应用程序运行set_time_limit (0);

php /path/to/app/script.php直接在控制台中执行类似的操作。

如果您没有 SSH 访问权限,则使用以下命令运行它shell_exec像这样:

shell_exec("php /path/to/app/script.php > /dev/null 2>/dev/null &");

这将确保调用它的脚本在完成之前不会挂起。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftMailer 批量电子邮件使我的服务器超时 的相关文章

随机推荐

  • 从服务器获取数据时 Android 中的列表视图

    我正在尝试将数据异步填充到列表视图中 我正在从服务器检索数据作为 JSON 响应 MainActivity java public class MainActivity extends Activity url to make reques
  • Availability.h 类宏

    是否可以有一个自定义可用性宏 例如 OSX AVAILABLE STARTING 我需要它以同样的方式执行 我只需要更改它的名称以及参数的版本和数量 是的 当然了 Objective C 是 C 的严格超集 因此 C 宏非常适合您使用 并且
  • 如何预测 merMod 对象(lme4)的术语?

    对于简单的glm对象 我可以使用predict fit type terms 检索包含每个项的拟合值的矩阵 相当于什么lmer resp glmer适配型号 据我所知 predict merMod功能不支持type terms 相当于什么l
  • 如何为 Outlook 创建“Internet 日历订阅”?

    目前 用户添加了一个 新的互联网日历 但它是 ICS 文件的一次性下载 我希望用户单击一个按钮即可将其个人日历添加为 Outlook 订阅 我想要自动更新 互联网日历订阅 http office microsoft com en us ou
  • VBA-获取所有文件属性

    我想获取文件夹中所有文件的属性 我已经将其用于固定数量的属性 我唯一关心的是找到最后一个属性的索引 用于GetDetailsOf方法 以便我可以列出所有属性 下面的函数返回属性计数 但不正确 因为它基于最后一个非空属性名称 然而 有一些索引
  • TinyMCE 编辑器中的换行符在预览中显示额外的行,而不是在代码中

    我将 BBCode 插件与 TinyMCE 结合使用 发现预览和 HTML 代码之间的换行符显示不一样 我在编辑器窗口中有以下几行 This is line one This is line three 第二行是空的 当我在 HTML 中查
  • Flutter Web 调试正常,但构建 Web 显示空白页面

    flutter doctor result Flutter Channel dev 1 21 0 1 0 pre on Microsoft Windows Version 10 0 19041 388 locale en US Androi
  • APK Openssl 版本

    我很困惑 我最近创建了 Google Play 应用程序 但几个小时后 我在控制台中收到消息 指出我使用了错误的 OpenSSL 版本 解压缩 p YourApp apk 字符串 grep OpenSSL gives OpenSSL 1 0
  • 如何使用 cygwin 排序对第 n 列上的制表符分隔文件进行排序?

    我有一个巨大的制表符分隔文件 我想在其第二列上进行排序 我需要使用制表符作为 cygwin 排序中的字段分隔符 所以我需要这样的东西 sort t t k 2 2 in txt gt out txt 但命令提示符按字面意思计算 t 而不是作
  • Storm 和 Spring 4 集成

    我有一个 Storm 应用程序原型 它读取 STOMP 流并将输出存储在 HBase 上 它可以工作 但不是很灵活 我正在尝试以与我们其他应用程序更一致的方式设置它 但不太幸运地弄清楚当前与 Storm 的工作方式 我们使用 spring
  • 如何在 Forth 中比较两个字符串?

    我可以在if声明还是我应该创建一个辅助布尔变量 这是我到目前为止的代码 顺便一提 IOX 是从用户那里获取输入 var compile VARIABLE complile lock compile var realPass compile
  • 如何更改ggplot2中图例文本的大小?

    我使用下面的数据和代码得到了这个图 我希望能够更改图例文本的大小 A B M1 M3 我尝试使用 legend text element text size 0 5 但它没有改变 有什么建议如何减小 legend text 的大小吗 Cod
  • 解决“只能在类中初始化静态常量整型数据成员”编译错误

    以下创建全局对象会导致编译错误 include stdafx h include
  • 混合单独编译的对象

    让我来上课吧class Drawable 它可以有许多成员 成员函数 父类 也可以非常简单 对于这个例子来说 这并不重要 另外 假设它是某种 GUI 元素 然后 假设我有一个渲染引擎 它作为 GCC 库提供engine a 该库包含clas
  • Laravel 5.0.* 中间件在处理路由之前从 url 中删除前缀区域设置

    我正在寻找一种方法 使所有应用程序路由都具有多个区域设置 而不使用路由组 这是因为我使用了外部扩展包 这意味着路由在很多地方注册 本质上我想让 foo bar 以及 en foo bar de foo bar es foo bar 等都被
  • 查找 int 数组中的第一个重复项,java

    这是我遇到的一个常见面试问题 但我未能按照其要求的方式改进它 assume we have an int array int A we want to find the first duplicate entry 几乎每个人都会想到使用Ha
  • 二级索引在 Cassandra 中如何工作?

    假设我有一个列族 CREATE TABLE update audit scopeid bigint formid bigint time timestamp record link id bigint ipaddress text user
  • Typewriter生成的TS文件不是模块

    我使用 Visual Studio 中的 Typewriter 扩展来生成模型 Account ts 但是当我尝试在另一个类中导入模型时 它失败了 我究竟做错了什么 import Account from models greencard
  • 如何在 IntelliJ 中浏览 .zip 文件(或 .jar 等)

    我希望能够在 IntelliJ 中 打开 无需解压缩 zip 文件或 jar 文件 就像您在 Eclipse 中单击 twisty 按钮一样 我如何使用 IntelliJ 做到这一点 项目结构中可见且无法扩展的 Jar 文件尚未作为库 添加
  • SwiftMailer 批量电子邮件使我的服务器超时

    我意识到 batchEmail 不再是新 SwiftMailer 的一部分 所以我做了这个脚本