Laravel側でMailChimpのアカウントを作成・更新・削除方法を紹介します。
なおLaravelとMailChimpの連携方法は前回の記事で説明しているので、もし連携がまだでしたら、先に設定しておいてくださいね。
今回は連携済みということで、処理方法をお伝えしていきます。
LaravelとMailChimp連携:コントローラーでアカウント作成・更新処理をする
LaravelとMailChimpを連携させるライブラリはいくつかあるようですが、前回設定した laravel-newsletterを使っていきます。
ルート設定、ビューの表示処理は省略します。
① アカウント登録処理を記述
下記アカウントを登録するとします。
- メールアドレス:test@test.com
- 名前:TEST HANAKO
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
ひとことメモuse宣言内のas MailChimpは、分かりやすくするために入れています。
use NewsletterのままでもOKです。その場合、最初は $mailchimp = Newsletter::getApi(); としておいてください。
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
$mailchimp = MailChimp::getApi();
// 設定済みのMailChimpのAudience IDを$list_idに代入
$list_id=config('newsletter.lists.subscribers.id');
$mailchimp->post("lists/$list_id/members", [
'email_address' => 'test@test.com',
'merge_fields' => ['FNAME'=>'TEST', 'LNAME'=>'HANAKO'],
'status' => 'subscribed',
]);
処理実行後、MailChimpにログインして、コンタクトが追加されているか確認してみてください。
② MailChimpのアカウント名の更新処理を行う
下記のようにアカウントを変更するとします。
- メールアドレス:test@test.com
- 変更後の名前:TEST HANAKO
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
$mailchimp = MailChimp::getApi();
$list_id=config('newsletter.lists.subscribers.id');
$email='test@test.com';
$subscriber_hash= $mailchimp->subscriberHash($email);
$mailchimp->patch("lists/$list_id/members/$subscriber_hash", [
'merge_fields' => ['FNAME'=>'TEST', 'LNAME'=>'HANAKO'],
]);
更新ときは、patchメソッドを使います。
更新処理後、MailChimpにログインしてAudience/All Contactをチェックしてみます。

アカウントのFirstnameとLastnameが書き換わっていることが確認できます。
③ MailChimpのアカウント名とメールアドレス更新処理を行う
下記のようにアカウントを変更するとします。
- 変更前のメールアドレス:test@test.com
- 変更後のメールアドレス:newtest@test.com
- 変更後の名前:BBB
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
$mailchimp = MailChimp::getApi();
$list_id=config('newsletter.lists.subscribers.id');
$email='test@test.com';
$subscriber_hash= $mailchimp->subscriberHash($email);
$mailchimp->patch("lists/$list_id/members/$subscriber_hash", [
'merge_fields' => ['FNAME'=>'BBB'],
'email_address'=>'newtest@test.com'
]);
メールアドレスの変更は、’email_address’ を使います。
④ MailChimpのアカウント削除処理を行う
下記のアカウントを削除するとします。
- 削除するメールアドレス:test@test.com
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
$mailchimp = MailChimp::getApi();
$list_id=config('newsletter.lists.subscribers.id');
$email='test@test.com';
$subscriber_hash= $mailchimp->subscriberHash($email);
$mailchimp->delete("lists/$list_id/members/$subscriber_hash");
MailChimpのバージョンによる書き方の違いについて
なおapiのバージョンによって書き方が違うようです。
2021年4月29日時点で最新のMailChimp API v3では、上記のようにmarge_fieldsを使いますが、API v2では、marge_varsが使われていたようです。
オンライン上の記事など参考にする場合には、APIのバージョンにご注意ください。
さいごに
LaravelからMailChimpのアカウントを操作する方法を4個、ご紹介しました。

連携によってさくっと色々出来てしまうところがすごい♪
ちなみにMailChimpは無料で使えますが、広告が表示されたりなど、使いにくい面も。
わたしのおすすめはスタンダード版です。
このあたりも含めて、LaravelとMailChimpのお役立ち情報、また書いていきますね。



コメント