【问题标题】:Sending emails with Mailgun occasionally hangs and doesn't send email使用 Mailgun 发送电子邮件偶尔会挂起并且不发送电子邮件
【发布时间】: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没有响应?

标签: php html email mailgun


【解决方案1】:

也许这是一个(非常)迟到的答案,但我刚刚遇到了同样的问题。而且我发现,Mailgun 有 IP 地址白名单,所以如果你没有在那里添加你的公共 IP 地址,那么与 Mailgun 的 API 的连接将永远不会建立。 在撰写此答案时,此链接下存在白名单:https://app.mailgun.com/app/account/security/api_keys

【讨论】:

  • 但是它显示“在存在白名单之前,默认情况下允许所有 IP 访问”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
  • 2017-12-23
  • 2022-10-01
  • 2016-01-24
  • 2014-04-14
  • 2015-03-25
相关资源
最近更新 更多