書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

LaravelとMailChimp連携方法:ユーザーにメルマガ・ニュースレターを手軽に配信する

LaravelとMailChimp

LaravelはMailChimpというメール配信システムと連携させて、メルマガ・ニュースレターを送信できます。

次のような流れを、手軽に作ることができます。

  1. Laravel上でフォームを通じて、ユーザー登録してもらう
  2. Laravelのデータベースにユーザー情報を登録する
  3. 同時にMailChimpにもユーザー情報を登録する
  4. MailChimpを通じて、ユーザーにニュースレターなどを配信する

MailChimpは日本語版がないので、英語が苦手な方は、ちょっと使いにくいかもしれません。

英語に抵抗がなければ、おすすめしたいツール。

非常に便利で、コスパが良く(無料版もあります♪)、世界的に有名なメール配信システムです。

今回は、MailChimpとLaravelの基本的な連携方法を解説していきます。

LaravelとMailChimp連携方法:ユーザーにメルマガ・ニュースレターを手軽に配信する

Laravelのプロジェクトが既にあり、MailChimpでアカウントを作成してあるという想定で、説明を進めていきます。

もしまだMailChimpアカウントをお持ちでない場合には、下記のMailChimpのサイトから、アカウントを作成してください。

Laravelでのプロジェクトの作成方法は、下記の記事で解説しています。

アカウント作成後、Laravelのプロジェクト上で、下記の設定を進めていきます。

①ライブラリをインストール

laravel-newsletterというライブラリを使います。

まずは、ライブラリをインストールします。

composer require spatie/laravel-newsletter

②設定ファイル作成

php artisan vendor:publish --provider="Spatie\Newsletter\NewsletterServiceProvider"

③設定ファイルの確認

②で作成したファイルを確認します

config/newsletter.phpを開きます。

<?php

return [

    /*
     * The driver to use to interact with MailChimp API.
     * You may use "log" or "null" to prevent calling the
     * API directly from your environment.
     */
    'driver' => env('MAILCHIMP_DRIVER', 'api'),

    /*
     * The API key of a MailChimp account. You can find yours at
     * https://us10.admin.mailchimp.com/account/api-key-popup/.
     */
    'apiKey' => env('MAILCHIMP_APIKEY'),

    /*
     * The listName to use when no listName has been specified in a method.
     */
    'defaultListName' => 'subscribers',

    /*
     * Here you can define properties of the lists.
     */
    'lists' => [

        /*
         * This key is used to identify this list. It can be used
         * as the listName parameter provided in the various methods.
         *
         * You can set it to any string you want and you can add
         * as many lists as you want.
         */
        'subscribers' => [

            /*
             * A MailChimp list id. Check the MailChimp docs if you don't know
             * how to get this value:
             * http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id.
             */
            'id' => env('MAILCHIMP_LIST_ID'),
        ],
    ],

    /*
     * If you're having trouble with https connections, set this to false.
     */
    'ssl' =>true,

];

設定ファイルに  ‘apiKey’ => env(‘MAILCHIMP_APIKEY’), と ‘id’ => env(‘MAILCHIMP_LIST_ID’), があります。

この2つは、.envファイルに設定しておく必要があります。

設定方法は次のとおり。

MAILCHIMP_APIKEYの設定

MAILCHIMPにログイン後、左下をクリックし、accountを選択

さらにExtrasより、API keysを選択。API作成画面が表示するので【create A key】を選択して、新たにAPIキーを作成します。

APIキーが表示されるので、これをコピー。

.envファイルの MAILCHIMP_APIKEY=の後に貼り付けます。

MAILCHIMP_LIST_IDの設定

MAILCHIMPログイン後、Audienceクリック。

プルダウンからSettingを選択。

Audience name and defaultsを選択。

Audience IDをコピーします。

.envファイルの MAILCHIMP_LIST_ID=の後に貼り付けます。

SSLをFALSEに変更

開発環境の場合には、config/newsletter.phpの設定が ‘ssl’ =>true, だと、別途 ssl用の設定をしておかなければ、登録できません。

開発環境の場合は、‘ssl’ =>false, にして、試してみてください。

④Laravelのコントローラーを作成

コントローラーを作成します。

php make:controller NewsletterController

次のようにいれておきます。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Newsletter;

class NewsletterController extends Controller
{
    public function index(){
        return view('newsletter');
    }
    
    public function store(Request $request){

        Newsletter::subscribe($request->email);
        return back();
    }
}

⑤Laravelのルート設定を追加

次の2つのルート設定を、routes/web.phpに追加します。

Route::get('/newsletter', 'NewsletterController@index')->name('newsletter.index');
Route::post('/newsletter/store', 'NewsletterController@store')->name('newsletter.store');

⑥Laravelのビューでフォームを作成

次に、Laravelのビューでフォームを作成します。

resources/viewsに newsletter.blade.phpファイルを作ります。

次のようなシンプルなフォームをいれておきます。

<form action="{{route('newsletter.store') }}" method="post">
@csrf
	<div class="form-group">
		<label for="email">メールアドレス</label>
		<input type="email" name="email" id="email" class="form-control">
	</div>
	<button type="submit" class="btn btn-primary">Submit</button>
</form>

*bootstrapを使ってフォームのデザインをしています。

⑦テストをする

フォームにメールアドレスを入力して、実際に登録できるかテストしてみてください。

/newsletterを開くと、次のようなシンプルなフォームが表示されます。

*もしbootstrapを入れていない場合には、見た目は変わります。

実際にメールアドレスを登録すると、MailChimpのコンタクトにも、メールアドレスが追加されています。

コンタクトを確認するには、MailChimpにログイン後、Audienceメニューから、All contactsを選択してください。

うまくいかない場合

下記コマンドで設定ファイルのキャッシュをクリアしてみてください。

php artisan config:clear

開発環境の場合は、newsletter.phpファイルのSSLが ‘true’ となっていないか、チェックしてみてください。

さいごに

なお、Laravel側でもユーザー情報を保存したい場合には、Newscontrollerのstoreメソッドに、データベースにも保存する処理を書いておく必要があります。

この部分は、通常通りでOKです。

今回はここは省略しますが、もしご要望などあれば、記事を追加していきますね。

じゅんこ
じゅんこ

LaravelとMailChimp連携は、また色々と使ってみて、記事にしていきたいと思います。

MailChimpの登録はこちらをクリックしてください。

ページの真ん中あたりに【Sign Up Free】という青緑色のボタンが表示されます。そちらから無料版の登録が可能です。

LaravelとMailChimp

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる
 

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
シェアする
Twitter始めました。

コメント

タイトルとURLをコピーしました