【ビジネス羅針盤 ステップメール】 オンラインマニュアル
 メール配信

メール配信の準備

smtpポートの設定

sendmailなどのMTAを利用してメールを送信する方法と、smtpポートを直接開いてメールを送信する方法があります。
sendmailなどのソフトを利用する場合は【smtpポートの設定】は行わないでください。
smtpポートから直接送信する場合は【smtpポートの設定】を行ってください。
MTAを利用する場合は、設定は簡単ですが、サーバーへの負荷が大きくメール送信速度は遅くなります。
smtpポートから直接送信する場合は、サーバーへの負担が小さくメール送信速度は早くなります。
テストの段階ではMTAを利用して送信しても大丈夫ですが、実際の運用で複数のメールを一度に送信する場合は、 サーバーへの負荷を少しでも減らすためsmtpポートから配信してください。
  1. 【管理者情報など】を開きます。
  2. 【SMTPサーバー】、【ポート番号】、【ユーザーID】、【パスワード】を入力して【更新する】ボタンをクリックします。
    【SMTPサーバー】、【ユーザーID】、【パスワード】はsmtpサーバー(メール送信)に接続するためのものです。

ログメールの設定

ステップ配信、メルマガ配信の結果をメールで受け取ることもできます(ログメール)。
まずはログメールの設定をします。
  1. 【管理者情報など】を開きます。
  2. ログメールを送信するアドレスを【ログメール送信先】に、ログメールの送信元にするアドレスを【ログメール送信元】に設定します。
    【ログメール送信先】を設定しなければ、ログメールは送信されません。ログメールを利用しない場合は、空白にしておいてください。

メールとメールの送信間隔秒数を設定する

ステップメール配信、メールマガジン配信など、メールを大量に連続送信する場合、メールとメールを送信する間隔を空けずに次々と送信すると、 サーバーに負担がかかります。
スパム認定の原因にもなるので、間隔を空けてください。
空白のままだと、2秒間隔が空きます。

1度に送信するメールの数を設定する

大量にメールを配信する場合、サーバーへの負荷を分散するために、一度に送信するメールの上限を設定設定します。
例えば500通メールを配信する場合、50通ずつ10回に分けて配信し負荷を分散します。
【ステップメール送信(send_step.php)】、【メールマガジン送信(send_issei.php)】へ適用されます。

Webページへimgタグを埋め込んで、アクセスがあるたびに配信する場合は、Webページの表示が重たくならないように、 小さな数を設定することをお勧めします。
cronなどの自動実行で運用する場合は、50通くらいに設定することをお勧めします。 1度に送信する数が多いと、処理に時間がかかりタイムアウトになるかもしません。 【CGIの最大実行時間】を設定するとタイムアウトになるまでの時間を変更することもできます。 (【CGIの最大実行秒数を設定する】を参照してください。)
空白のままだと、50通送信されます。

また、cronで運用する場合、リスト全てが配信されるように、【send_step.php】と【send_issei.php】を実行するように設定してください。 cronでは10分おきに実行、0時〜3時の間5分おきに実行といった設定ができます。(詳しくはお使いのサーバーのマニュアルをご覧ください。)
上記の例のように、500通のメールを50通ずつ10回に分けて配信するときは、cronから【send_step.php】と【send_issei.php】を10回以上実行するように設定します。

CGIの最大実行秒数を設定する

PHPはデフォルトでは実行時間が30秒を過ぎると、タイムアウトになり処理を中断します。
【CGIの最大実行秒数】を設定すると、タイムアウトになるまでの時間を一時的に変更することができます。
しかし、あまり大きな秒数にすると、サーバーに負担がかかります。 PHPをインストールしたときのデフォルトは30秒であることを考慮して設定してください。
この値は、 【ステップメール送信(send_issei.php)】、【メールマガジン送信(send_issei.php)】、【エラーメール削除(delete_errmail.php)】、【メールアドレス一括登録】に適用されます。
(1通のメールを送信するのにかかる秒数+メールとメールの送信間隔の秒数)* 1回に送信するメール数 で実行に必要な秒数が計算できます。
cronなどの自動実行を利用する場合も、1回の実行時間を60秒くらいに収め、リスト数に応じて何回かに分けて送信するようにしてください。
【最大実行秒数】を設定しなければ、180秒に設定されます。
もし、サーバーがCGIの実行時間の制限をしている場合、サーバーの値の方が優先されます。 つまり、羅針盤で180秒に設定しようとしても、サーバーがCGIの実行時間を30秒に制限している場合、30秒だけ実行されます。

1日に送信するメールの数を設定する

一日の送信数が制限されているサーバーを使っている場合、制限数を超えないように設定してください。
空白のままだと、1000000通送信されます。


メールを配信する

ステップメールは【send_step.php】、メールマガジンは【send_issei.php】を実行したりアクセスがあったとき配信されます。
cronのように設定した時間に自動実行される機能を使うか、Webページに埋め込んで実行してください。 もちろん、ブラウザから【send_step.php】、【send_issei.php】へアクセスしても実行されます。
次のcronで実行するimgタグとしてページに埋め込んで実行するブラウザから実行する ブラウザ用のマクロで自動化するのいずれかでメールの配信を行ってください。これら4つ以外にも良い方法があればそれでも構いません。

cronで実行する

メールの配信を自動実行したい場合に設定してください。
ただしご契約のレンタルサーバーでcron(設定した時間になったら自動でコマンドを実行してくれる機能)が使える場合にのみ利用できます。 cronが使えるかどうかは、ご契約のレンタルサーバーをご確認ください。
cronの設定方法はレンタルサーバーによって大きく異なります。設定方法はお使いのレンタルサーバーにお問い合わせください。

メールマガジン配信をcronに設定する場合は【send_issei.php】のサーバーパスを記述して、
ステップメール配信をcronに設定する場合は【send_step.php】のサーバーパスを記述して、
cronから実行してください。
【send_issei.php】のサーバーパスを【ビジネス羅針盤 ステップメール】管理画面の【メールマガジン配信予約】へ、【send_step.php】のサーバーパスを【ビジネス羅針盤 ステップメール】管理画面の【ステップメール配信設定】へ表示しています。 パスがどうしても分からないときはご参考になさってください(一部のサーバーでは値が正しく取得できないものもあります)。

サーバーの環境によっては、PHPのパスやphp.iniを指定する必要があるかもしれません。 指定方法はお使いのレンタルサーバーにお問い合わせください。 【ビジネス羅針盤 ステップメール】が動くPHP環境は動作環境をご覧ください。
またスクリプトファイルの権限を変更する必要のあるレンタルサーバーもあります。 どの権限で動くかはレンタルサーバーによって違いますので、サーバーのマニュアルを参照してください。

1度に送信するメールの数を設定する】で何回かに分けてメールを配信するように設定した場合や 配信数が多くて配信が複数回に分かれる場合は、何分かおきに実行されるようにcronを設定して、想定している回数分の配信が行われるようにしてください。
cronを使っての運用をどのように考えたらよいのか迷われた時は、cron設定の例をご参照ください。

設定が終わるまでは、【データ編集】−【配信の一時停止ができます】の【配信・停止】を【停止】にしておき、 全ての設定が終わりメールの配信を始める時は、【データ編集】−【配信の一時停止ができます】の【配信・停止】を【配信】にしてください。

どうしても配信されない場合は、メールが配信されないときの原因確認方法をご覧ください。

cronの設定方法については、ネットビジネス便利ツールではサポートしておりません。お使いのレンタルサーバーのサポートにお問い合わせください。 どうしてもネットビジネス便利ツールのサポートがご入用の場合は、インストール代行をご利用ください。

imgタグとしてページに埋め込んで実行する

imgタグに【send_step.php】や【send_issei.php】を指定して実行する方法があります。
ただしこの方法は、タグを埋め込んだページにアクセスがあったときのみ配信が実行されます。
また逆に、アクセスがある度に配信が実行されてしまいます。
極力cronなどの自動プログラム実行機能をご利用ください。

<img src="http://sample.desu/stepmail/send_step.php" width="0" height="0" alt="" />  (ステップ配信)
<img src="http://sample.desu/stepmail/send_issei.php" width="0" height="0" alt="" />  (一斉配信)
をページのどこかに記述してください。
また、1度に配信されるメールの数を少なく設定してください。大量に配信するとその間ページが表示されないことがあります。
この方法で配信する場合、アクセス数の多いページにタグを埋め込み、1度に配信されるメールの数を少なく設定する方がいいと思います。またステップ配信用のタグと一斉配信用のタグは別々のページに埋め込んだ方がいいでしょう。

メールの配信を始める前に、【データ編集】−【配信の一時停止ができます】の【配信・停止】を【配信】にしてください。

ブラウザから実行する

この方法は手動で配信することになります。また手軽に配信できるので、cronが動かない時のテストにも使ってください。
メールの配信を自動化したいときは、cronなどの自動プログラム実行機能をご利用ください。

メールの配信を始める前に、【データ編集】−【配信の一時停止ができます】の【配信・停止】を【配信】にしてください。

ブラウザのアドレスバーに、【send_step.php】、【send_issei.php】のURLを入力して、アクセスしてください。
また、【1度に送信するメールの数を設定する】で何回かに分けてメールを配信するように設定した場合、 全てのアドレスに配信される回数分、何分かおきにアクセスしてください。

ブラウザ用のマクロソフトやブラウザを操作できるExcelVBAなどを使って自動化することもできます。 ブラウザ用のマクロで自動化するをご参照ください。

ブラウザ用のマクロで自動化する

自動化できますが、メール配信を行う時間帯にはPCやスマホなどで常にブラウザを動かしておかなければいけません。
またブラウザ用のマクロソフトを使う必要がありますので、マクロソフトのインストールや設定を行うことになります。

ブラウザ用のマクロソフト(iMacrosやSelenium IDEが有名でしょうか)をPCにインストールし、【send_step.php】、【send_issei.php】のURLへ 希望する時間毎にアクセス(リロード)するように設定します。 つまり、ブラウザから実行するの手動でブラウザからアクセスするところをマクロで自動化するのです。
ExcelVBAなどブラウザを操作できるプログラムが書ける方はそれでも大丈夫なはずです。
ブラウザ用のマクロソフトやExcelVBAの使い方はネットビジネス便利ツールではサポートいたしませんのでご自身でお調べください。

配信時間帯を設定する

メールマガジンやステップメールを配信する時間帯を一時的に制限することができます。
cronでは1:00〜5:59に配信する設定にしているけれども、一時的にあるいはこのメールのみ2:00〜3:59に配信したい、という場合に設定してください。
また、この項目でcronで設定していない時間帯に配信するように設定しても、cronで設定していない時間帯に配信は行われません。 cronでは1:00〜5:59に配信する設定、この項目は4:00〜6:59に設定しても、配信されるのは4:00〜5:59です。
この項目を設定しても、cronの設定には影響しません。

  1. 配信時間帯を設定したいステップの【データ編集】を開きます。
  2. 【メールマガジンとステップメールを配信する時間帯を設定します】に配信したい時間帯を入力します。
    形式は、HH:mm(例えば、21:00)、24時間表記で入力してください。例えば、日を跨ぐ場合でも、21:00〜03:00 のように入力してください。
    ここで時間帯を設定すると、全てのメールマガジン、ステップメールに適用されます。
    各々のメールマガジンやステップメールに異なる時間帯を設定したい場合は、【メールマガジン配信予約】や【ステップメール配信設定】へ時間帯を入力してください。
    【データ編集】と【メールマガジン配信予約】の両方に時間帯を入力した場合、【メールマガジン送信設定】の設定の方が優先されます。
    同様に、【データ編集】と【ステップメール配信設定】の両方に時間帯を入力した場合、【ステップメール配信設定】の設定の方が優先されます。

cron設定の例

ステップメール配信時の例を載せておきます。 どう考えて良いかわからない時にご参考になさってみてください。
あくまで例なので、この通りにする必要は全くありません。ご自身の運用スタイルやリスト数に合わせて設定してください。

日数の設定とスクリプト実行の関係

【ステップメール配信予約】で第1回目のステップ配信の日数を【0日1時間後】
cronでスクリプトを毎時0分に実行する
と設定しているとします。

11:50にステップメールへ新規登録があった場合、このメールアドレスへは、
12:00のスクリプト実行時 ⇒ 本登録から1時間たっていないので配信されません、
13:00のスクリプト実行時 ⇒ 本登録から1時間たっているので配信されます。
このように本登録から設定した日数が経過した後のスクリプト実行時に配信が行われます。 このケースでは本登録から1時間10分後に配信されることになります。
ただし設定している1度に送信するメールの数や、配信数が増えたりして順番が来ない場合は、 その次の機会、またその次・・・となることもあります。
cronで実行を例にしていますが、imgタグに埋め込み、ブラウザから実行など、どの実行方法でも同じです。

サーバーの負荷が少ない時間帯にまとめて配信

このスタイルで配信される方がほとんだと思います。
サーバーの負荷が少ない深夜の時間帯にcronでスクリプトを実行するように設定します。
1度に送信するメールの数、CGIの最大実行秒数(サーバーによっては制限があります)を多めに設定します。

cronの設定 : 毎日2時台〜5時台に10分間隔でスクリプトを実行
羅針盤の設定 : CGIの最大実行秒数を180s、メールとメールの送信間隔秒数を2s、 1度に送信するメールの数を50通

2:00〜2:03 ⇒ 送信すべきメールの1〜50通目を送信、実行時間は最大180s
2:10〜2:13 ⇒ 送信すべきメールの51〜100通目を送信、実行時間は最大180s
2:20〜2:23 ⇒ 送信すべきメールの101〜150通目を送信、実行時間は最大180s
 ・
 ・
 ・
5:50〜5:53 ⇒ 送信すべきメールの1151〜1200通目を送信、実行時間は最大180s
もし50通配信する前にCGIの最大実行秒数を超えそうになったら、そこで処理を終了して次回の配信に回します。

一日に渡って少しずつ配信

一日中cronでスクリプトを実行するように設定します。
サーバーの負荷が大きい時間帯にもメールの配信が行われますので、1度に送信するメールの数量、 CGIの最大実行秒数(サーバーによっては制限があります)を少なくした方が良いでしょう。
この方法だと、登録後比較的早く第1回の配信が行われるように設定できるので、第一回は即時の感覚に近い配信ができます。

cronの設定 : 毎日毎時0分にスクリプトを実行
羅針盤の設定 : CGIの最大実行秒数を30s、メールとメールの送信間隔秒数を2s、 1度に送信するメールの数を10通
0:00 ⇒ 送信すべきメールの1〜10通目を送信、実行時間は最大30s
1:00 ⇒ 送信すべきメールの11〜20通目を送信、実行時間は最大30s
2:00 ⇒ 送信すべきメールの21〜30通目を送信、実行時間は最大30s
 ・
 ・
 ・
23:00 ⇒ 送信すべきメールの231〜240通目を送信、実行時間は最大30s
もし10通配信する前にCGIの最大実行秒数を超えそうになったら、そこで処理を終了して次回の配信に回します。

メールが配信されないときの原因確認方法

次の項目を原因がわかるまで順番に確認してみてください。

配信がオンになっているか確認

羅針盤の管理画面、各プランの【データ編集】−【配信の一時停止ができます】の【配信・停止】が【配信】になっているか確認してください。

配信すべきメールがあるか確認

配信すべきメールがあるか確認してください。特にステップメールの場合、計算間違いをしていることがあるのでご注意ください。

ログの確認

ログについての要領でログを確認してください。 ログメールが送信できないケースもありますので、管理画面から確認してください。
またどのステップのログか不明な場合は、サーバーにある【ビジネス羅針盤 ステップメール】をインストールしたディレクトリの直下の 【log】ディレクトリに保存していますので、こちらも確認してください。
エラーログが書き出されている場合は、エラーメッセージ一覧をご参考にして対処してください。

メール送信元の設定

ステップメール共通部分の設定の、 【送信元アドレス】、【Reply-To】、【エラーメール受け取りアドレス】が【ビジネス羅針盤 ステップメール】をインストールしたサーバーに 実在するか確かめてください。 サーバーによっては、実在しないと動作しないこともあるようです。

MTAで送信してみる

smtpポートの設定でsmtpポートから配信するように設定している場合は、一時的に設定を外してMTAから配信されるようにしてみてください。 MTAからは配信される場合は、smtpポートの設定が間違っていることになります。正しく設定してください。
なお、MTAを使った配信はサーバーへの負荷が大きいため、本番ではsmtpポートから配信してください。

ブラウザにエラーを表記してみる(ブラウザで実行しようとしている場合)

セキュリティ上好ましくないので、【ビジネス羅針盤 ステップメール】ではエラー表記を止めています。 一時的にブラウザにエラーを表記させてその内容を確認できるようにします。 次の手順でエラーを表記、確認してください。
compass_cron.zip】をダウンロードして、解凍します。
サーバーの【class/ClassCronBaseProcess.php】をリネーム後、解凍した【ClassCronBaseProcess.php】をアップロードします。
再度ブラウザからアクセスしてみてください。
エラーが表示されたら、エラー内容をご連絡ください。
動作し始めたら【ClassCronBaseProcess.php】を元に戻してください。

ブラウザからアクセスして実行(cronで実行しようとしている場合)

ブラウザから実行するの要領でブラウザのアドレスバーに、【send_issei.php】、【send_step.php】のURLを入力して、アクセスしてください。

ブラウザアクセスで配信される場合

cronからスクリプトが実行できていないことになります。

次の手順でエラー内容を確認してください。
  1. 【send_issei.php】と【send_step.php】はブラウザから実行されることもあるので、セキュリティ上エラー表記を止めています。 エラーを表記させてその内容を確認できるようにします。
    compass_cron.zip】をダウンロードして、解凍します。
    サーバーの【class/ClassCronBaseProcess.php】をリネーム後、解凍した【ClassCronBaseProcess.php】をアップロードします。
  2. 大抵のレンタルサーバーでは、cronでの実行結果をメールで送信したり、ファイルに保存する機能を利用できます。 レンタルサーバーのマニュアルをご覧になり、利用できる場合は必ず設定して結果を確認してください。
    この時cronのコマンドに【 > /dev/null 2>&1】や【2 > /dev/null】があると、実行結果を破棄してしまい確認できなくなります。 少なくともテストの間は【 > /dev/null 2>&1】や【2 > /dev/null】は付けないでください。
  3. cron実行結果をメールやファイルで確認してください。

エラーが出ている場合は、cronから実行はできているけれど、何かが原因でエラーになっていることになります。 エラー内容に従って対処してください。大きく次のようになると思います。
  • cron実行の日時設定、コマンド、スクリプトファイルのパス、スクリプトファイルのパーミッションの設定に誤りがないか確認してください。
  • cron実行環境のPHPバージョンやphp.ini(サーバーによってはブラウザから実行するPHP環境と異なることがあります)など確認してください。(バージョンがわからない場合、cronで動いているPHPのバージョンでも確認できます。)
  • 【send_issei.php】と【send_step.php】は、cronでcdコマンドを実行しなくてもよいように、スクリプトの先頭で実行ディレクトリに移動するコマンドを記述しています。
    ですがレンタルサーバーが必要な値を返さないケースでは、読み込みファイルがない(requireやincludeに失敗した)というエラーが出る場合があるかもしれません。この場合はcronでcdコマンドを実行してください。
    ex.)
    【send_issei.php】の絶対パスが【/home/public/web_id/sample.desu/send_issei.php】で、
    PHPのパスが【/usr/local/bin/php】の場合、
    cd /home/public/web_id/sample.desu ; /usr/local/bin/php send_issei.php
    のようになります。(【send_issei.php】のパスやPHPへのパスはご自分の環境に合わせて変更してください。)

エラーが出ていない場合は、cronから実行できていないことになります。 cronのコマンドが正しいか確認してください。
  • もしcronにcdなどのコマンドを書いていたらやってみてください。
    PHPのバージョンをエコーするとても単純なソースなので、cdなどのコマンドは必要ありません。 PHPのバージョンも何でも大丈夫です。
    最も簡単なコマンドで、最も簡単なソースファイルを実行して、cronの設定が正しいか確認する方法です。
    compass_cron.zip】をダウンロードして、解凍します。
    サーバーの【send_issei.php】をリネーム後、解凍した【send_issei.php】をアップロードします。
    新しい【send_issei.php】のパーミッションを設定します。
    cronのコマンドは【send_issei.php】のサーバーパスだけを設定します。 (もしcronにcdなどのコマンドを書いていたら外し、ただ【send_issei.php】を実行するだけのコマンドにしてください。)
    PHPのバージョンがメールで送信されたり、ファイルに保存されるか確認してください。
    動作し始めたら【send_issei.php】を元に戻してください。
    この方法はcronで動いているPHPのバージョンの確認にも利用できます。
  • 【send_issei.php】と【send_step.php】は実行が成功した時にも何にも出力を行いませんので、コマンドの後ろに【echo "hello"】を追加するとcronが実行されたかどうかわかりやすいかもしれません。
    ex.)
    【send_issei.php】の絶対パスが【/home/public/web_id/sample.desu/send_issei.php】で、
    PHPのパスが【/usr/local/bin/php】の場合、
    /usr/local/bin/php /home/public/web_id/sample.desu/send_issei.php ; echo "hello"
    です。(【send_issei.php】のパスやPHPへのパスはご自分の環境に合わせて変更してください。)

ブラウザアクセスで配信されない場合

配信がオンになっているかの確認配信すべきメールがあるかの確認ログの確認メール送信元の設定MTAで送信してみるブラウザにエラーを表記してみる を再度確認してください。

HTTP500エラーが表示される場合

もし【500 Internal Server Error(HTTP500エラー)】が出るようでしたら、 PHPのバージョンが【ビジネス羅針盤 ステップメール】の動作環境に合っているか確認してください。 cronで動いているPHPバージョンのチェックもできます。