Итак, я только что внедрил mailgun на веб-сайт для отправки информации из контактной формы. Иногда это работает, но в основном страница зависает, когда я нажимаю кнопку отправки с сообщением «Ожидает url ...» в нижнем левом углу Chrome.
На сервере нет 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 также не показывают, что что-то пошло не так.
Спасибо
@aynber вы бы сказали, что это может быть причиной зависаний? это больше похоже на проблему с моим сайтом, поскольку электронные письма никогда не отправляются, а не с задержкой с их отправкой.
Я не знаком с этим конкретным API, поэтому не могу сказать полностью. Если он просто отправляется в Mailgun, то нет. Если он отправляет и ждет ответа «Доставлено», то возможно.
насколько мне известно, он не ждет доставленного ответа, так как это может занять некоторое время после того, как api примет почту. может быть, это просто api не отвечал из-за их исправлений?






Может быть, это (очень) поздний ответ, но я только что столкнулся с той же проблемой. И я обнаружил, что Mailgun имеет белый список IP-адресов, поэтому, если вы не добавили туда свой общедоступный IP-адрес, соединение с API Mailgun никогда не будет установлено. На момент написания этого ответа белый список присутствует по этой ссылке: https://app.mailgun.com/app/account/security/api_keys
Однако он гласит: «До тех пор, пока не будет белого списка, всем IP-адресам разрешен доступ по умолчанию».
Это может быть плохой день для тестирования: status.mailgun.com/incidents/9nj4mzscl69g Служба должна быть запущена и запущена (-иш) сейчас.