Movable Type でメールマガジンを作る

Movable Type でメールマガジンを作る

Posted at June 24,2008 12:55 PM
Tag:[Address, MovableType]

昨日の「Movable Type 4.2 でアドレス帳機能を利用する」の続きで、ブログ管理者が手動でアドレス帳にメールアドレスを登録するのではなく、ブログにアドレス登録用のフォームを掲載し、外部のユーザーが登録したメールアドレスをアドレス帳に登録する方法を紹介します。

メルマガ登録

この機能と「Movable Type 4.2 でアドレス帳機能を利用する」を組み合わせれば、Movable Typeを利用してメールマガジンのようなものを構築できそうです(タイトルはちょっと言い過ぎです)。

本エントリーではメールアドレス登録までの流れを紹介します。この機能を利用するには、事前に次の作業を行ってください。

  • システムメニュー「全般」のメールアドレスを設定する
  • アドレス帳機能を有効にする

1.メールアドレス登録フォームの作成

次のようなメールアドレス登録フォーム用のテンプレートモジュール(またはウィジェット)を作成します。

<form method="post" action="<$MTCGIPath$>mt-add-notify.cgi">
    <input type="hidden" name="blog_id" value="<$MTBlogID$>" />
    <input type="hidden" name="_redirect" value="<$MTBlogURL$>" />
    <input name="email" size="20" />
    <input type="submit" value="add" />
</form>

mt-add-notify.cgi がアドレス帳追加用のCGIです。他の input 要素についてはそのまま使用してください。

2.メールアドレスの登録

ブログ閲覧ユーザは、表示されたフォームからメールアドレスを登録します。「add」をクリックすると、「登録したメールアドレスにメールを送信しました。メールアドレスを認証するため、メールの内容に従って登録を完了してください。」というメッセージが表示されます。

登録ユーザーが、送信されたメールに掲載されたURLをクリックすれば、アドレス帳への追加が完了します。逆に、クリックをしないと登録は完了しないので、スパム攻撃を防ぐことができます。

3.メールマガジンを送る

送信方法は「Movable Type 4.2 でアドレス帳機能を利用する」を参照してください。

メールマガジンの送信時に使われるテンプレートは、システムテンプレートの「ブログ記事の共有」です。このテンプレートをカスタマイズすれば、好きなフォーマットで送信できます。

メールマガジン本文は、ブログ記事本文の内容をそのまま利用すると良いでしょう。
なお、ブログ記事の「テキストフォーマット」の指定は適用されません。メールで送信する際は、プレーンテキストで送られます。

4.その他

以前のバージョン(~3.3)では環境変数EmailVerificationSecretの設定が必要でしたが、Movable Type 4では環境変数自体が削除されています。

関連記事
トラックバックURL


トラックバック

MovableType 3.36 読者登録フォームを設置 from みきのの日記
MovableTypeには、予め登録しておいたメールアドレス宛に、エントリー投稿時に通知メールを配信する機能があります。 これを利用すれば、ブログの更新... [続きを読む]

Tracked on August 2, 2010 7:11 AM
コメント

はじめまして。
本エントリーを参考にさせていただき、色々と挑戦しています。

「ブログ記事の共有」テンプレートを編集する事で、メール本文は自由に修正する事が出来たのですが、もうひとつメールの「件名」を変更したいのですが、どこを変更したら良いのか分かりません。

例えば、初期状態である「更新通知: ブログタイトル - エントリータイトル」を「メールマガジン: エントリータイトル」とするには、どのようにしたら良いのでしょうか?

[1] Posted by ichi : July 31, 2008 6:08 PM

>ichiさん
こんばんは。
ご質問の件ですが、おそらく、

/lib/MT/L10N/ja.pm

を編集すれば良いと思います。編集する行は「更新通知:」で検索してください。
このファイルは UTF-8 で編集可能なエディタ(秀丸など)で編集してください。

それではよろしくお願い致します。

[2] Posted by yujiro logo : August 4, 2008 12:59 AM

はじめまして。
以前から色々と参考にさせていただいております。

質問なのですが、このエントリーの手順通りにフォームを設置したのですが、addのボタンをクリックすると以下のエラーが表示されます。

「You need to set the EmailAddressMain configuration value to your own email address in order to use notifications at lib/MT/App/NotifyList.pm line 42.」

NotifyList.pmの42行目が引っかかっているのはわかるのですが、どうしていいのかわかりません。
できれば教えていただきたく思います。

よろしくお願いします。

[3] Posted by D : October 29, 2008 11:50 AM

>Dさん
はじめまして。
ご質問の件ですが、1項の手前に書かれている「システムメニュー」の「全般」で「システムのメールアドレス」を設定されましたでしょうか。
それではよろしくお願い致します。

[4] Posted by yujiro logo : October 29, 2008 1:01 PM

はじめまして。
参考になる情報をいつもありがとうございます。

早速ですが、こちらの登録フォームをウィジェットで作成し、設置をしたのですが、
届いたメールをクリックしても登録が完了されません。
「Subscription confirmation failed.」と出てしまいます。
届いたメールのURLには、若干変?と思われる文字もあります。
 ※メールアドレスが下記のようになっている。

email=test%40xxx.ne.jp

本当のアドレス=test@xxx.ne.jp


MySQL利用です。
原因って、分かりますでしょうか?
分かるようでしたら、ご返事をお願いしたいです。
よろしくお願いします。

[5] Posted by しの : January 31, 2009 2:01 PM

>しのさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、「Subscription confirmation failed.」が表示される原因はプログラムをトレースしたところ、ブログIDに対応するブログが存在しないときに発生するエラーのようです。
届いたメールのURLのクエリーに、ブログIDらしき文字列が含まれているか確認し、ブログIDがあれば、そのブログIDに対応するブログがあるかどうかご確認ください。
とりあえず情報まで。
それではよろしくお願い致します。

[6] Posted by yujiro logo : February 4, 2009 4:40 PM

はじめまして。
いつも有益な情報をありがとうございます。

早速ですが、登録フォームを設置して、通知完了メール内のURLをクリックしても、「Subscription confirmation failed.」が表示されます。

>> しのさん
ご回答にありますブログIDは間違いなく付いおります。


ver:MT4.23
DB:MySQL

登録通知メールのURL
http://www.xxxx.com/cgi-bin/mt/mt-add-notify.cgi?__mode=confirm;email=xxxxx%40xxxx.jp;magic=%241%24s9%24ssyBvCbTaHiF2N0LZTPRq0;blog_id=3redirect=http%3A%2F%2Fwww.xxxx.com%2Fxxxx%2F

原因が分るようでしたら、ご返信くださいましたら幸いです。
宜しくお願いいたします。

[7] Posted by hideon : February 15, 2009 8:04 AM

いつも非常に参考にさせていただいています。

今日こちらのページを拝見して、メールマガジンの設定が
できるという内容を早速行ってみました。

システムメールの設定を行っていなかったので

最初に
「You need to set the EmailAddressMain configuration value to your own email address in order to use notifications at lib/MT/App/NotifyList.pm line 42.」
のエラーがでました。早速登録してメールが届きましたが

下記の
「Subscription confirmation failed.」
がでてしまい アドレス帳への登録ができません。

ブログIDに対応するブログは存在しましたが、
メールに記載してあるURLの最初にあるアドレス部分と
後半にあるアドレス部分がwww のあり・なしのようなので、これを
変更したいと思ったのですが、どこで変更していいかわからず、
よければ、ご教授いただけると幸いです。
よろしくお願いいたします。 

[8] Posted by なかなか : March 23, 2009 4:45 PM

>なかなかさん
こんにちは。
ご質問の件で確認ですが、URLを統一するには、mt-config.cgiのCGIPathを「http://~」で記述してください。ドメインには、「サイトURL」に記載しているドメインを設定してみてください。

変更後、メールアドレスの登録が成功したかどうかご連絡いただければ幸いです。
それではよろしくお願い致します。

[9] Posted by yujiro logo : March 24, 2009 12:40 PM

はじめまして。
いつも参考にさせていただいています。

登録フォームの設置はうまくいったのですが、
そもそも自分のアドレスがわからない(PCでも)という方が多いので
PC&ケータイで、空メールでアドレス登録するようにはできないでしょうか。

CGIの知識がなく、さんざんぐぐりましたが該当するようなCGIは見つかりませんでした。

お手数をおかけする質問で申し訳ありませんが、ご教授いただけたら幸いです。

よろしくお願いいたします。

[10] Posted by あひる : April 7, 2009 6:46 PM

>あひるさん
こんにちは。
ご質問の件ですが、ご要望の件は「何らかのメールアドレス宛に空メールを送信すれば、即時にメールアドレスを登録できるようにしたい」ということでしょうか。
それではよろしくお願い致します。

[11] Posted by yujiro logo : April 8, 2009 12:11 AM

説明のしかたが悪くて申し訳ありません。

空メール用のアドレスに送信されたアドレスを取り出してmt-add-notify.cgi(
だと思うのですが)に渡し、アドレス帳に登録する、ということはできないでしょうか。

メールで更新記事を配信するという機能はとても気に入っているのですが、
登録したい方がメールアドレスがわからない、または間違うというケースは多いと
思われるので何とかならないかと思っています。

また、登録用のアドレスに送られたアドレスを手動でそのままアドレス帳に登録してしまうと迷惑メールとの区別がつかないので、返信メール内のURLをクリックさせるというMTのアドレス帳登録機能をそのまま使いたいのですが。

お手数をおかけいたしますが、よろしくお願いいたします。

[12] Posted by あひる : April 9, 2009 5:13 PM

はじめまして
いつも参考にさせていただいております。

メルマガ登録を設置しましたが、
届いたメールに記載されているURLをクリックすると
「Subscription confirmation failed.」
と表示されてしまい、アドレス帳への登録ができません。

既に登録されているアドレスで登録をする場合は、
「メールアドレスはすでに登録されています。 」と表示されます。

解除するフォームも設置しましたが、
こちらもきちんと動作しております。

ブログIDも存在しております。
もし原因がわかるようでしたら、
ご教授いただければ幸いでございます。

どうぞ宜しくお願いいたします。

[13] Posted by たま : April 13, 2011 8:30 PM

先日、メルマガ登録で、
届いたメールに記載されているURLをクリックすると
「Subscription confirmation failed.」
と表示されてしまい、アドレス帳への登録ができないと投稿(質問)
させていただきましたが、暫定措置として、
下記のように変更したところ登録ができました。

---------------------------------------
lib/MT/Appフォルダに入っている
NotifyList.pmの
202行目~206行目をコメントアウトしました。

# if ($failed) {
# print $q->header;
# print "Subscription confirmation failed.\n";
# exit;
# }

---------------------------------------

あまりプログラムに詳しくないので、
何か影響がでてしまうかもしれませんが、
ご参考までに投稿させていただきました。

[14] Posted by たま : April 20, 2011 11:29 AM

>たまさん
こんばんは。
ご返事遅くなり申し訳ありません。
また、情報ありがとうございました。
時間をみて確認したいと思います。

[15] Posted by yujiro logo : April 21, 2011 12:31 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)