【发布时间】:2019-10-15 01:39:56
【问题描述】:
所以我刚刚在一个网站中实现了 mailgun 来发送联系表格信息。 这在某些时候有效,但是当我按下发送并在 chrome 的左下角显示消息“等待 url...”时,页面通常会挂起。
服务器上没有 ssl,因此出现了奇怪的 mailgun 构造函数。
这是我的 php,它位于我的网站正文中。
<?php
require 'mailgun-php/vendor/autoload.php';
use Mailgun\Mailgun;
if(isset($_POST['register'])){
$message = "Contact Form.\n\n".
"Name: ".$_POST['name']."\n".
"Email: ".$_POST['email']."\n".
"Message: ".$_POST['message']."\n";
$mg = new Mailgun(*my key*, "api.mailgun.net", "v2", false);
$domain = *my domain*;
$mg->sendMessage($domain, array(
'from'=>'Contact Form <build@<url>>',
'to'=> *email*,
'subject' => ' Contact Form',
'text' => $message
)
);
header('Location: ?sent=1');
}
?>
这是表单代码:
<form method="post" action="index.php">
<div class="row 50%">
<div class="6u 12u$(mobile)"><input type="text" class="text" name="name" placeholder="Name" /></div>
<div class="6u$ 12u$(mobile)"><input type="text" class="text" name="email" placeholder="Email" /></div>
<div class="12u$">
<textarea name="message" placeholder="Message"></textarea>
</div>
<div class="12u$">
<button class="button" type="submit" name="register"> Send Message </button>
</div>
</div>
</form>
未发送电子邮件时,我没有收到任何错误消息。按下提交按钮后页面最终将重新加载,但未应用标头重定向(我假设这是因为电子邮件未成功发送)。
php 错误日志也没有显示任何问题。
谢谢
【问题讨论】:
-
今天可能不太适合测试:status.mailgun.com/incidents/9nj4mzscl69g 该服务现在应该已备份并运行(-ish)。
-
@aynber 你会说这可能是挂起的原因吗?这似乎更像是我的网站的问题,因为电子邮件从未发送过,而不是延迟发送。
-
我不熟悉那个特定的 API,所以我不能说完全。如果它只是提交给 Mailgun,那么不会。如果它提交并等待已交付的响应,那么可能。
-
据我所知,它不会等待传递的响应,因为在 api 接受邮件后实际上可能需要一段时间。也许只是因为他们的修复,api没有响应?