php - php 中单独线程上的电子邮件

标签 php multithreading email

我想知道是否有办法在 php 中启动一个单独的线程来发送和发送电子邮件。 我有一个小型网络服务,它从 iPad 应用程序获取一些信息,然后将数据插入数据库,然后发送电子邮件。问题是有时电子邮件发送时间太长,iPad 的请求超时。有没有办法可以在单独的线程上发送电子邮件?我基本上想在电子邮件发送之前告诉 iPad 一切都成功了。

一些示例代码:

... Process info and insert into DB
echo "success"; //this should be returned to the iPad right away.

//start new thread here or possibly fork???
$email->send();

谢谢!

最佳答案

正如所指出的,PHP 不具有多线程能力,但它具有多处理功能。您可以创建并调用第二个 PHP,第一个 PHP 将调用该 PHP 来处理电子邮件。该脚本需要能够在命令行上运行。

exec('nohup php emailscript.php >/dev/null 2>&1 &');

nohup 及其后的所有内容非常重要。它所做的是将进程置于后台并重定向所有输出。否则 PHP 将等待它完成并返回一些内容。 nohup 将确保当父调用进程结束时脚本不会被操作系统终止。

您确实需要以某种方式将电子邮件信息传递给脚本。您可以将信息放入数据库中并向其传递记录 ID、将信息作为参数传递或许多其他选项。

关于php - php 中单独线程上的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618293/

相关文章:

php - 使用 PHP 和 cURL 发送数据时保留 post 字段的数据类型

php - 需要好的 php sql 库

php - HTML/CSS 面板不通过 PHP 中的 JavaScript 显示

php - 如何检查 PCNTL 模块是否存在

java - 推荐用于 SMS 发送器系统的 Java 并发/并行库

c# - 多线程 C# 应用程序日志文件锁定问题

java - 如何在 gae java 的电子邮件 API 授权发件人列表中添加电子邮件 ID

api - Laravel 5.7处理来自API的电子邮件验证错误

python - 创建一个文本文件,并通过电子邮件发送而不保存在本地

c++ - 自动线程恢复 C++