2017-12-20 3 views
0

現在mail()ファンクション(PHPファンクション)を使用して、私のウェブサイトのユーザーに電子メールを送ります。しかし、残念ながら彼らは迷惑メールフォルダに入ります。いくつかの調査の後、私はメールを送信するためにメールチップを使用しなければならないことを理解しました。だから私の最初の質問:それは本当ですか? (スパムでないようにメールを送信するためにmailchimpを使用)phpとmailchimpで電子メールを送信するにはどうすればよいですか?

要するに、私がしようとしているのは、私のウェブサイトのユーザーに登録の有効化として電子メールを送信することだけです。


そしてここでは私のコードです:

<?php 

$apiKey = "df96e260041c0e31bb80bd2fb9a230a2-us17"; 
$campaignId = "70623"; 

$memberId = md5(strtolower("[email protected]")); 
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1); 
$url = 'https://'. $dataCenter . '.api.mailchimp.com/3.0/campaigns/' . $campaignId .'/actions/test'; 

$jsonEmail = '{"test_emails":["the mail you want to send thing sat"],"send_type":"html"}'; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERPWD, 'apikey:'.$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_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonEmail); 

$result = curl_exec($ch); 
curl_close($ch); 

var_dump($result); 

?> 

そして、それは返します

文字列(234) "{" タイプ ":" http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/ " "タイトル":" 」、「インスタンス」:「4541f02b-ea08-44da-a1d0-0f45f5457399」}「

「リソースが見つかりません」、「ステータス」:404、「詳細」:

どうすれば修正できますか?

+0

このパッケージを試すhttps://github.com/drewm/mailchimp-api – Wilon

+0

@Wilonありがとう..あなたはそのライブラリの実装例を持っていますか? – stack

+2

セキュリティ上の理由から、MailChimp APIキーをコードで完全に表示することはできません。誰でもあなたのアカウントにアクセスして、あらゆる種類のメールを送ることができます! MailChimpのキーを無効にして(誰かが既にそれを受け取っている場合)、新しいものを作成しますが、コードに追加しないでください。 – zeiddev

答えて

0

MailChimpの使い方を理解していないと思います。上記のコードでは、MailChimpのエンドポイントを使用しています。これは、キャンペーンのテストに使用されます。つまり、1〜2人にテスト電子メールを送信して、キャンペーンが送信されたときに期待通りに動作するようにします。

一般的な考え方は、一度に多くの人に送信される予定のキャンペーンを作成することです。これには、自動化やトランザクション型電子メールなどのバリエーションがあります(MailChimpは、トランザクション電子メールアプリケーションMandrillをこの目的のためにメインアプリケーションに組み込んでいます)。

通常、php mail()は、個々の電子メール、つまり大量の電子メールではなくトランザクション電子メールを送信するために使用されます。

MailChimpでトランザクション電子メールを送信する場合は、アプリケーションのその領域を参照してください(またはMandrillを参照)。キャンペーンタイプのメールを送信する場合は、メールのリストを設定し、メールキャンペーンのテストにのみ使用されるテストではなく、POST/campaigns/{campaign_id}/actions/sendを使用する必要があります。あなたの具体的な例として

...

私はあなたがここに与えている構文については確認していない:私は次のように使用しているだろう

curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); 

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 

それ以外の場合は、独自のAPIキーとキャンペーンを使用すると、自分の例が私のために機能します。キャンペーンIDが有効でないかのようにチェックして、それが確かにあなたが持っているエラー応答を与えるかどうかを確認することができます。

関連する問題