Mailchimp API
を使用して自分のサイトにカスタムフォームを作成しようとしています。私はPHP
スクリプトを書いてMailchimpダッシュボード内のメーリングリストにユーザを追加しています。しかし、私は彼らに自動応答メールを送信する際に問題が発生しています。Mailchimp APIフォームが最終的なウェルカムメールを送信しない
これは私のHTML
形式です:
<form method='post' action='<?= get_template_directory_uri() ?>/mailchimp.php'>
<input type='text' name='email'/>
<input type='submit' name='submit' value='Subscribe'/>
</form>
これはMailchimpにリクエストを処理し、リストにユーザーを追加する私のコードです:
session_start();
if(isset($_POST['submit'])){
$email = $_POST['email'];
if(!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL) === false){
// MailChimp API credentials
$apiKey = 'xxx';
$listID = 'xxx';
// MailChimp API URL
$memberID = md5(strtolower($email));
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://' . $dataCenter . '.api.mailchimp.com/3.0/lists/' . $listID . '/members/' . $memberID;
// member information
$json = json_encode([
'email_address' => $email,
'status' => 'subscribed'
]);
// send a HTTP POST request with curl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "<h1>$httpCode</h1>";
return $httpCode;
}
}
私はあなたが最終的に送信することはできませんことを読んであなたのリストにsubscribed
としてマークされていない限り、誰にでも電子メールを歓迎します。上書きしない限り、私は以下のやったとして加入し、ユーザーのステータスを設定することで、APIを使用してMailchimpは、二重のoptinポリシーを適用理解:
// member information
$json = json_encode([
'email_address' => $email,
'status' => 'subscribed'
]);
が、私はまだリストに加入すると、メールを受信していない何らかの理由。誰かが私が間違っていることについて何か提案がありますか?
私は、Mailchimpのバックエンドから最終ウェルカム電子メールがセットアップされていることを確認しました。