gpt4 book ai didi

php - 管道电子邮件到 PHP 应用程序

转载 作者:可可西里 更新时间:2023-11-01 00:55:35 25 4
gpt4 key购买 nike

我有一个使用 Slim 路由框架构建的 PHP 应用程序。该应用程序需要从订单中发送动态电子邮件,以便用户可以直接回复这些电子邮件,并且响应会立即返回到应用程序(存储在 MySQL 中)。我可以轻松地为每个订单创建动态地址,而且效果很好。我的问题是取回它。

我设置了一个子域 (mailer.example.com) 并在 cPanel 中设置了一个转发器来捕获所有发往该子域的邮件并将其转发到特定的 PHP 文件。该 php 文件读取 stdin 并获取 mime 消息并将其写入文件:

#!/usr/bin/php -q
<?php
// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd))
{
$email .= fread($fd, 1024);
}
fclose($fd);

$filename = "mail_".date("mdYHis").rand(1,99999999);
file_put_contents("mailfiles/".$filename, $email);

header("Location: http://www.example.com/public/mailer/process/".$filename);

如您所见,最后我想将此转发到我的实际应用程序,该应用程序具有所有数据库调用和其他例程来处理电子邮件。但我不知道如何将请求放入应用程序。它似乎忽略了上面的 header 调用。

我是不是做错了,或者我应该在这个脚本中做我需要的所有处理?我意识到这可能是最简单的前进路径,但我也在尝试使用非常适合我的应用程序的邮件解析库。

不确定这一切是否有意义。让我知道您还需要什么其他信息。

最佳答案

我认为您要做的不是返回带有 Location header 的 HTTP 响应,而是向您的 Web 服务器发起 HTTP 请求。

在这种情况下,您应该将 header() 调用替换为:

$ch = curl_init('http://localhost/public/mailer/process/' . $filename);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);

请注意,您的脚本(调用以保存邮件内容的脚本)将等待您的应用完成对请求的处理。如果这对您来说是个问题,您需要使用一种技术来运行 PHP processes in the background .

关于php - 管道电子邮件到 PHP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com