使用 PHPMailer 脚本连接 Zapier

我正在使用 Zapier 从 Facebook 收集潜在客户,然后将它们发送到我的 CRM。我有一个脚本连接到我的 CRM,应该处理潜在客户。对于脚本将触发的每个新线索,脚本收集从 Zapier 传递的数据并将其转换为 XML 并将其发送给我的客户端。

除了一件事,一切都有效。PHPMailer 似乎对 zapier 造成了麻烦,因为每当启用 email() 函数时,Zapier 都会给我一个错误。

仅供参考 - 当我转到脚本 url 并手动设置 GET 参数时,这会起作用。正在发送 xml。但是当从 zapier 触发脚本时,就会出现问题。

Zapier 错误:“我们在发送您的测试时遇到问题。应用程序返回“内部服务器错误”,没有更多详细信息。您连接的应用程序的服务器似乎已关闭或当前遇到问题。请检查应用程序的状态页面或联系支持人员如果没有报告的问题。”


富国沪深
浏览 125回答 1
1回答

慕的地6264312

两个关键问题。首先,您使用的是 SMTP,但您还没有设置Host到您的邮件服务器 - 所以它不会工作,除非它localhost- 是这样吗?您要求 PHPMailer 抛出异常(通过传递true给构造函数),但是您没有在对 PHPMailer 的调用周围包裹 try/catch 块,因此任何错误都将导致未捕获的异常 - 这将给您准确的症状你在看。试试这个:function email(){    global $xmlData;    $mail = new PHPMailer(true);    try {        $mail->isHTML(false);        $mail->isSMTP();        $mail->setFrom('XML@gmail.com', 'Yashir CV Lead');        $mail->addAddress("BinaryRx@gmail.com");        $mail->Subject = "Yashir CV Lead";        $mail->Body = $xmlData;        $today = date('d-m-Y H:i:s');        $mail->send();        echo "Report Sent - ".$today;    } catch (Exception $e) {        echo 'Sending failed'.$e->getMessage();    }}总的来说,主要的事情是一次调试一件事——email()在开始尝试做依赖于它工作的事情之前检查该函数是否真正独立工作,否则你将不知道代码的哪一部分失败了。如果您使用的是 PHP 7.0 或更高版本,则可以通过使用null 合并运算符来简化对参数的初始检查。你可以替换这个:$firstName = isset($_GET['firstName']) ? $_GET['firstName'] : '';和:$firstName = $_GET['firstName'] ?? '';
打开App,查看更多内容
随时随地看视频慕课网APP