Mailgun API 仅适用于一封电子邮件

问题描述:

我正在使用 PHP 和 Mailgun API 制作电子邮件订阅表格,但我只收到电子邮件到我在 mailgun.com 上用于创建帐户的主要电子邮件地址.当我用该电子邮件填写表格时,我会收到确认信,但它不适用于其他电子邮件.为什么会这样?这是代码:

I'm making email subscription form with PHP and Mailgun API, but I only get email to my main email address which I used for account creation at mailgun.com. When I fill the form with that email, I get the confirmation letter, but it doesn't work with other emails. Why is so? This is the code:

初始化文件:

<?php
require_once 'vendor/autoload.php';

define('MAILGUN_KEY', 'key-2ce40f5e23c90b0d666f3e....');
define('MAILGUN_PUBKEY', 'pubkey-8cf7125996....');

define('MAILGUN_DOMAIN', 'sandboxc03eaee7674c4a9094ffa8d61845ddf5.mailgun.org');
define('MAILING_LIST', 'audimas@sandboxc03eaee7674c4a9094ffa8d61845ddf5.mailgun.org');
define('MAILGUN_SECRET', '...');

$mailgun = new Mailgun\Mailgun(MAILGUN_KEY);
$mailgunValidate = new Mailgun\Mailgun(MAILGUN_PUBKEY);
$mailgunOptIn = $mailgun->OptInHandler();
 ?>

主 index.php 文件:

Main index.php file:

<?php
require_once 'init.php';


if(isset($_POST['name'], $_POST['email']))
{
    $name = $_POST['name'];
    $email = $_POST['email'];

    $validate = $mailgunValidate->get('address/validate', [
        'address' => $email
    ])->http_response_body;

    if($validate->is_valid)
    {
        $hash = $mailgunOptIn->generateHash(MAILING_LIST, MAILGUN_SECRET, $email);

        $mailgun->sendMessage(MAILGUN_DOMAIN, [
            'from'      => 'noreply@audimas.com',
            'to'            => $email,
            'subject'   => 'Please confirm your subscription to us',
            'html'      => "Hello {$name}<br><br>You signed up to our mailing list. Please confirm below"
        ]);

        $mailgun->post('lists/' . MAILING_LIST . '/members', [
            'name'              => $name,
            'address'               => $email,
            'subscribed'    => 'no'
        ]);

        header('Location: http://localhost:8888/exam/index.php');
    }

}
?>

您正在使用 sandboxc03eaee7674c4a9094ffa8d61845ddf5.mailgun.org 沙盒子域发送电子邮件.

You are using sandboxc03eaee7674c4a9094ffa8d61845ddf5.mailgun.org Sandbox subdomain for sending an email.

你应该得到如下错误:

错误:沙盒子域仅用于测试目的.请添加您自己的域或将地址添加到帐户设置中的授权收件人.

要发送多封电子邮件,您必须先创建自己的域.您可以从此处

To send multiple emails, you have to create your own domain first. You can create domain from here

确保您的域已通过验证.如果您的域未经验证,您将收到如下错误:

Make sure your domain is verified.If your domain is unverified then you will get an error like:

错误:域未经验证,需要 DNS 配置.登录到您的控制面板以查看所需的 DNS 记录.