2017-05-30 13 views
2

PHPとMailgun APIを使用して電子メールの購読フォームを作成していますが、私はmailgun.comのアカウント作成に使用した私のメイン電子メールアドレスに電子メールを送ります。私がその電子メールでフォームに記入すると、私は確認書を受け取りますが、他の電子メールでは機能しません。なぜそうですか?これはコードです:Mailgun APIは1つの電子メールでのみ動作します

初期化ファイル:

<?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', '[email protected]'); 
define('MAILGUN_SECRET', '...'); 

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

メインのindex.phpファイル:

<?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'  => '[email protected]', 
      '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'); 
    } 

} 
?> 
+0

:あなたは、あなたのドメインがドメインが未検証であるverified.Ifのように、あなたがエラーを取得するになっていることを確認しhere

からドメインを作成することができます 。 – Adam

答えて

2

あなたは電子メールを送信するためsandboxc03eaee7674c4a9094ffa8d61845ddf5.mailgun.orgサンドボックスのサブドメインを使用しています。

はあなたが好きなエラーを取得する必要があります。

Error: Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.

は、複数の電子メールを送信するには、まず自分自身のドメインを作成する必要があります。あなたが唯一のサンドボックスモードで承認されたアカウントにメールを送ることができます

Error: The domain is unverified and requires DNS configuration. Log in to your control panel to view required DNS records.

関連する問題