inmotion phpList (version 3.0.5) を使ってみる

2013年12月2日

inMotion ホスティングで phpList を使ってみた際のメモ(使い方)。

インストール

How to install phpList

phpList 用の email アカウントの作成

送信者用アドレス、管理者用アドレス、送信したメールが何らかの理由で戻ってきた(bounce back)場合の処理のためのアドレス等を用意しておく。

この例では以下の様なアドレスを用意して、それぞれ必要な箇所に設定する。
newsletter@mydomain.com(送信者用)
admin@mydomain.com(管理者用)
listbounces@mydomain.com(バウンス bounce back 用)

(注意)

まとまった量のメール(1時間に250以上)を送信するには、あからじめ AMP で「email limit exemption」のリクエストを行う必要がある。(Sending an Email Limit Exception Request in AMP

cPanel から「Softaculous」を使ってインストール

Install phpList with Softaculous

この例では、「phplist」というディレクトリーにインストールする。

ディレクトリ:mydomain.com/phplist

  1. cPanel にログインする
  2. 「Top Applications」の「Categories」から「Mail」を選択

    phplist01

  3. 表示されるソフトの中から「phpList」を選択して「Install」をクリック

    phplist02

  4. 以下を設定
Choose Protocol 「http://」または「http://www.」を選択。(SSLサーティフィケートを設定してあれば、「https://」、「https://www.」を選択)
Choose Domain phpList をインストールするドメインをプルダウンから選択。
Install in directory インストールするディレクトリ(相対パス)の指定(インストールするディレクトリはこの時点では、存在してはならない)。空白の場合、プライマリードメインのドキュメントルートにインストールされる。例:「http://mydomain/foo/」にインストールするには「foo」と指定。空白にしておくと「http://mydomain/phplist/」にインストールされる。
Database name phpList 用に作成するデータベース名を指定。
Cron job settings Cron job の設定。特に指定がなければそのままにしておく
Site Name phpList の呼び名(デフォルトは「phpList」)
Tabel prefix テーブル接頭辞の指定 (デフォルトは「pl_」)
Administrator username 管理者(admin user)の名前
Administrator password 管理者のパスワード
Real Name 管理者の表示名(デフォルトは「Administrator」)
Admin Email 管理者の email アドレス(デフォルトは admin@ドメイン名)
  • 「Install」をクリックするとインストールが開始される。
  • (インストールする位置に.htaccess が配置されていると、エラーになる)
  • 「Email installation details to : 」にメールアドレスを指定しておくと、インストールの詳細情報(ユーザー名、パスワード、データベース名など)がそのアドレスに送信される。

インストールが完了すると、以下のように表示される。

Congratulations, the software was installed successfully
phpList has been successfully installed at :
http://mydomain.com/phplist
Administrative URL : http://mydomain.com/phplist/admin

config.php の設定

How to rate limit emails sent in phpList(送信するメール数の設定)

デフォルトでは、phpList はできるだけ多くの数のメールを短時間に送信するようになっているが、スパムの問題や共用サーバーでの制限(送信できるメールの上限)などがあるため設定を変更する必要がある。

共用サーバーでの1時間あたりに送信できるメールの量はドメインに付き250に制限されている。1時間に250以上のメールを送信するには別途リクエスト(「注意」を参照)が必要。

また、通常メールを1時間に「10通」送信している場合は、phpList には最大「240通」に設定しなければならない。以下の例では phpList での送信するメールの量を「5分間」に「17通」(1時間に204通)に設定する。

  1. cPanel にログイン
  2. 「Files」から「File Manager」を選択

    phplist03

  3. phplist をインストールしたディレクトリに移動

    phplist04

  4. その中の「config」ディレクトリに「config.php」というファイルがあるので、右クリックして「Code Edit」を選択して、ファイルを編集モードにする。(character encoding が「utf-8」になっていることを確認)

    phplist05

いろいろな設定が記述されているが、以下の2つのラインを探して編集する。

define("MAILQUEUE_BATCH_SIZE",0);
define("MAILQUEUE_BATCH_PERIOD",3600);

これらを以下のように変更する。毎300秒に17通送信するように設定。
(# から始まるのはコメントで最初から記述されているもの)

# define the amount of emails you want to send per period. If 0, batch processing
# is disabled and messages are sent out as fast as possible
define("MAILQUEUE_BATCH_SIZE",17); 

# define the length of one batch processing period, in seconds (3600 is an hour)
define("MAILQUEUE_BATCH_PERIOD",300);
  1. 「Save Changes」をクリックして終了。

送信量を制限した場合の例

400+ のユーザーにメールを送信する場合、以下の様な感じになる。

9:20 am にリストを送信開始
(17通が送信され、次の送信まで300秒待つ)

Started
Sending in batches of 17 emails
Processing has started, 1 message(s) to process.
Please leave this window open. You have batch processing enabled, so it will reload several times to send the messages. Reports will be sent by email to listreports@phplist.inmotiontesting.com
Processing message 7
Looking for users
Found them: 403 to process
batch limit reached: 17 (17)
Script stage: 5
17 messages sent in 4.38 seconds (13961 msgs/hr)
Finished this run
Waiting for 300 seconds before reloading

5分後(9:25 am), ブラウザはリロードされ、以下の様なメッセージが表示される。(次の17通のメッセージが送信された)

このように5分毎にブラウザはリロードされ、17通ずつメールが送信される。

Started
Sending in batches of 17 emails
Sent in last run: 17
Skipped in last run: 0
Processing has started, 1 message(s) to process.
Please leave this window open. You have batch processing enabled, so it will reload several times to send the messages. Reports will be sent by email to listreports@phplist.inmotiontesting.com
Processing message 7
Looking for users
Found them: 386 to process
batch limit reached: 17 (17)
Script stage: 5
17 messages sent in 0.51 seconds (119386 msgs/hr)
Finished this run
Waiting for 300 seconds before reloading

メモ

メールの送信が終わるまでは、ブラウザを閉じてはならない。

ブラウザを閉じると、phpList はメールを送信できないので、その時点で送れれていないメールは送信されない。途中で閉じてしまった場合は、「phpList admin」にログインしてサイドバーの「process queue」のリンクをクリックして、メールの送信を再開させる。

言語の設定

「config.php」の以下の部分を変更する。デフォルトは「英語”english.inc”」

# select the language module to use
# Look for <country>.inc files in the texts directory
# to find your language
# this is the language for the frontend pages. In the admin pages you can
# choose your language by using the dropdown in the pages.
$language_module = "english.inc";

ユーザーのページを日本語にするには以下のように変更(管理画面はドロップダウンから言語を選択)

$language_module = "japanese.inc";

言語ファイルは「phplist/texts」にある。また、英語以外の言語ファイルは phpList の最新のバージョンに追い付いていないのでアップデートする必要がある。

その他の設定

Complete phpList setup after Softaculous install

自動的に設定されている各項目のデフォルトを確認して、必要であれば変更することができる。

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン

    phplist06

  2. 「システム機能」タブの「セットアップ:phpList(setup)」をクリック

    phplist07

  3. 「コンフィギュレーション オプション」が表示される
  4. 「Verify Settings」の右横の「表示」をクリックすると「設定 phplist」が表示される

    phplist08

  5. 各項目を確認して、必要であれば編集する(例:「誰がレポートを受け取るか(Who gets the reports )」のアドレスは、通常「listreports@mydomain.com」になっているので、このアドレスを作成するか、または別の既存のアドレスを指定する)

    phplist10

  6. デフォルトに戻すには、画面上部の「デフォルトにリセットする」をクリック。

    phplist11

属性(attributes)の設定

phpList はリストにユーザーのメールアドレス以外の項目(名前やアンケート等)も設定することができ、「属性(attributes)」と呼ばれている。以下は「姓(Last Name)」、「名(Fist Name)」という2つの属性を作成する例。

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「システム機能」タブの「セットアップ:phpList(setup)」をクリック

    phplist07

  3. 「コンフィギュレーション オプション」が表示される

    phplist08

  4. 「属性設定」の右横の「表示」をクリックすると「属性の設定」が表示される

    phplist12

  5. 「新規属性追加:」の項目に値(以下の例参照)を入力して「変更を保存」をクリック

名前: 姓(Last Name)
タイプ: textline
デフォルト値: (なし:空白、何も入力しない)
表示順: 1
Is this attribute required?: チェックを入れる

名前: 名(Fist Name)
タイプ: textline
デフォルト値: (なし:空白、何も入力しない)
表示順: 2
Is this attribute required?: チェックを入れる

メーリングリストの作成

How to create a Mailing list within phpList

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「リストとユーザ機能(list and user functions)」のタブをクリック

    phplist13

  3. 「Manage Lists」をクリックするとリストが表示される
    (「test」というリストはデフォルトで作成されている。下の図では削除済み)。

    phplist14

  4. 新しくリストを作成するには下部の「リストの追加(add a list)」をクリックして、リストの詳細情報を入力する。
入力例
リスト名: テストリスト(リストの名前を指定)
Public list (listed on the frontend) チェックを入れる
表示順 0(リストを表示する順番を指定:整数値)
リストの説明 テスト用リスト(リストの説明を入力)
  1. 「メッセージが保存されました”(Save)」をクリック (和訳がおかしい?)
  2. 「New List added: ~」が表示され、しばらくすると消える。

デフォルトの「test」リストの削除

Manage lists in phpList

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「リストとユーザ機能(list and user functions)」のタブをクリック
  3. 「Manage Lists」をクリックすると既存のリストが表示される
  4. 「test」リストの欄の「ゴミ箱」のアイコンをクリック
  5. 「Are you sure you want to delete this list?(削除しますか?)」というアラートが表示される
  6. 削除するには「OK」をクリック

マニュアルでユーザーをリストに追加する場合

phpList では、ユーザーが購読ページから登録する場合がほとんどだが、マニュアルでユーザーを登録することもできる。

以下の例ではマニュアルでユーザーをリストに追加し、それらのユーザーを「未確認(un-confirmed)」に設定することでユーザーは今後メールを受信したいかどうかを判断(決定)することができる。

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「リストとユーザ機能(list and user functions)」のタブをクリック
  3. 「ユーザ(すべてのユーザを表示する)」をクリック

    phplist15

  4. 「ユーザ追加(add a user)」をクリック

    phplist16

  5. 「Add a new subscriber」の表示の下の「Email address: 」にメールアドレスを入力し「続ける」をクリック

    phplist17

  6. 「詳細」タブには以下の様な表(一部抜粋)が表示されるので、必要な項目を編集・修正する。

    phplist18

ID ID は自動的に一意に付与されるので変更しない。
Email 先ほど入力したメールアドレスが表示される。
Is this user confirmed (1/0) ユーザーがすでに購読を確認しているかどうか。( 0 = No and 1 = Yes) この例では「未確認(un-confirmed)」とするため、「0」を指定。
Send this user HTML emails HTML 形式のメールを受信するには「1」を、テキスト形式の場合は「0」を指定。0 = No and 1 = Yes
姓(Last Name) 独自に設定した属性「姓(Last Name)」。適当な名前を指定。
名(Fist Name) 独自に設定した属性「名(Fist Name)」。適当な名前を指定。
  1. 「リスト」タブをクリック

    phplist19

  2. 「メーリングリストメンバーシップ:」でユーザーを追加するリストにチェックを入れる
  3. 「変更を保存」をクリック
  4. 続いて、以下の「確認メールの送信」を行う。

確認メールの送信

前述でマニュアルで追加したユーザは「未確認(un-confirmed)」に設定しているので、確認のメールを送りユーザが登録を確認(承諾)するまでは、ニュースレターなどのメールは送信されない。

phpList のバージョンが「3」以前には、このような場合の機能(resending confirmation request to unconfirmd users:未確認ユーザへの確認メールの再送信)があったが、バージョン3 以降ではなくなっているので、以下のリンクにあるようなハックしをしなければその機能は使えない。

No more reminder to subscribers available?
phpList v3.0.x Integration – Script Changes “phpList v3 Missing Reconcile Subscriber Options”

注意

このハックをしても、アップグレードなどした場合には、機能しなくなる可能性もあるし、思わぬ不具合が発生しないとも限らない。また、元のファイルは別名でコピーして保存などしておいたほうがよい。行うには自己責任で。不具合かは不明だが「ユーザの調整」をクリックしたら「Sorry, not implemented yet.」と表示され他には何も表示されなかったが、もう一度やり直したらちゃんと表示された。。。

試したバージョン:version 3.0.5

「lists/admin/reconcileusers.php」の以下の部分(471行目から)を変更。

<?php   //削除
/*   //削除
<!--form method="get">   //「!--」を削除
<table class="reconcileForm"><tr><td colspan="2">
<?php echo $GLOBALS&#91;'I18N'&#93;->get('To resend the request for confirmation to users who signed up and have not confirmed their subscription')?></td></tr>
<tr><td><?php echo $GLOBALS&#91;'I18N'&#93;->get('Date they signed up after')?>:</td><td><?php echo $from->showInput("","",$fromval);?></td></tr>
<tr><td><?php echo $GLOBALS&#91;'I18N'&#93;->get('Date they signed up before')?>:</td><td><?php echo $to->showInput("","",$toval);?></td></tr>
<tr><td colspan="2"><?php echo $GLOBALS&#91;'I18N'&#93;->get('Text to prepend to email')?>:</td></tr>
<tr><td colspan="2"><textarea name="prepend" rows="10" cols="60">
<?php echo $GLOBALS&#91;'I18N'&#93;->get(' Sorry to bother you: we are cleaning up our database and  it appears that you have previously signed up to our mailinglists  and not confirmed your subscription.  We would like to give you the opportunity to re-confirm your  subscription. The instructions on how to confirm are below.   ')?>
</textarea>
</td></tr>
</table>
<input type="hidden" name="page" value="reconcileusers" />
<input type="hidden" name="option" value="resendconfirm" />
<input class="submit" type="submit" value="<?php echo $GLOBALS&#91;'I18N'&#93;->get('Click here')?>" /></form-->   //「--」を削除
*/   //削除
?>   //削除

コメントアウトの部分などを削除して以下のように変更。

<hr/>   <!-- 追加 --> 
<form method="get">
<table class="reconcileForm"><tr><td colspan="2">
<?php echo $GLOBALS&#91;'I18N'&#93;->get('To resend the request for confirmation to users who signed up and have not confirmed their subscription')?></td></tr>
<tr><td><?php echo $GLOBALS&#91;'I18N'&#93;->get('Date they signed up after')?>:</td><td><?php echo $from->showInput("","",$fromval);?></td></tr>
<tr><td><?php echo $GLOBALS&#91;'I18N'&#93;->get('Date they signed up before')?>:</td><td><?php echo $to->showInput("","",$toval);?></td></tr>
<tr><td colspan="2"><?php echo $GLOBALS&#91;'I18N'&#93;->get('Text to prepend to email')?>:</td></tr>
<tr><td colspan="2"><textarea name="prepend" rows="10" cols="60">
<?php echo $GLOBALS&#91;'I18N'&#93;->get(' Sorry to bother you: we are cleaning up our database and  it appears that you have previously signed up to our mailinglists  and not confirmed your subscription.  We would like to give you the opportunity to re-confirm your  subscription. The instructions on how to confirm are below.   ')?>
</textarea>
</td></tr>
</table>
<input type="hidden" name="page" value="reconcileusers" />
<input type="hidden" name="option" value="resendconfirm" />
<input class="submit" type="submit" value="<?php echo $GLOBALS&#91;'I18N'&#93;->get('Click here')?>" /></form>

上記の修正がうまく行けば、以下の方法で確認メールを送信することができる。

  1. 「リストとユーザ機能」タブをクリック
  2. 「ユーザの調整(Reconcile the user database)」をクリック

    phplist20

  3. ページの下の方の「To resend the request for confirmation to users who signed up and have not confirmed their subscription(登録を確認していないユーザに確認メールを再送信する)」とある部分で、「未確認(un-confirmed)」に設定されているユーザを期間から特定して確認メールを送信する。

    phplist21

例えば、今日が12月2日であれば以下の様な指定をすれば、先ほどリストに追加した「未確認(un-confirmed)」に設定されているユーザに確認メールを送信できる。

次の期間の後に参加表明した日付: 1 | December | 2013
次の期間の前に参加表明した日付: 3 | December | 2013

また、送信されるメッセージ(Text to prepend to email:)がデフォルトで英語の文が記述されているが、必要であれば変更して、「ここをクリック」をクリックする。

購読ページ(登録用フォーム)の作成

How to create a subscribe form for your phpList mailing list

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「Configuration Functions」タブをクリック
  3. 「購読ページ(Configure subscribe pages)」をクリック

    phplist22

  4. 「Add a new subscribe page」をクリック

    phplist23

  5. 「購読ページの編集」が表示されるので「一般インフォメーション」「Transaction messages」「申込可能なリストを選択」のタブで必要な情報を入力する。

    phplist24

    phplist25

一般インフォメーション
以下の項目を確認して、必要であれば編集
タイトル
利用する言語ファイル(プルダウンから選択)
イントロ
ヘッダ
フッタ
Thank you ページ
ボタンのテキスト
HTMLメール選択(ユーザーにオプションを表示するかどうかなどを選択)
電子メールの確認を表示(ユーザーがメールアドレスを入力した際に確認のため2回入力するかどうか。デフォルトは「確認する:2回入力する」)
Transaction messages
登録時に確認のためなどに送信されるメッセージ(英語なので必要であれば日本語に変更する)
購読時に受け取るメッセージ
購読の確定時に受け取るメッセージ
購読時(解約時の間違えだと思われる)に受け取るメッセージ
使用したい属性を選択
属性(attributes)の設定で作成した属性を使用する場合は、その属性の横のチェックボックスにチェックを入れる
申込可能なリストを選択
メーリングリストを指定
  1. 「変更を保存(Save and Activate)」をクリック
  2. 「購読ページ」が表示されるので作成した購読ページの下の「虫眼鏡」のアイコンをクリックして、作成した購読ページを確認する。

    phplist26

    この時の URL(例:http://mydomain.com/phplist/?p=subscribe&id=1)が購読ページの URL になる。

    phplist27

登録フォーム(購読ページのフォーム)を自分の Web ページに挿入する

  1. 上記(前述)で作成した購読ページを開く(作成したページを確認した際の URL)。
    (注意)管理者(admin)でログインしていると余分な要素が表示されているので、管理者からログアウトしてからページを表示する。
  2. そのページのソースコードを表示する(Windows では Ctrl + U )。
  3. 入力チェックの JavaScript(オプション)と form 要素をコピーする。
<script language="Javascript" type="text/javascript">

function checkform()
{
  for (i=0;i<fieldstocheck.length;i++) {
    if (eval("document.subscribeform.elements&#91;'"+fieldstocheck&#91;i&#93;+"'&#93;.type") == "checkbox") {
      if (document.subscribeform.elements&#91;fieldstocheck&#91;i&#93;&#93;.checked) {
      } else {
        alert("入力してください: "+fieldnames&#91;i&#93;);
        eval("document.subscribeform.elements&#91;'"+fieldstocheck&#91;i&#93;+"'&#93;.focus()");

        return false;
      }
    } else {
      if (eval("document.subscribeform.elements&#91;'"+fieldstocheck&#91;i&#93;+"'&#93;.value") == "") {
        alert("入力してください: "+fieldnames&#91;i&#93;);
        eval("document.subscribeform.elements&#91;'"+fieldstocheck&#91;i&#93;+"'&#93;.focus()");

        return false;
      }
    }
  }
  for (i=0;i<groupstocheck.length;i++) {
    if (!checkGroup(groupstocheck&#91;i&#93;,groupnames&#91;i&#93;)) {
      return false;
    }
  }
  
  if (! compareEmail()) {
    alert("入力した電子メールアドレスがマッチしません。");

    return false;
  }

  return true;
}

var fieldstocheck = new Array();
var fieldnames = new Array();
function addFieldToCheck(value,name)
{
  fieldstocheck&#91;fieldstocheck.length&#93; = value;
  fieldnames&#91;fieldnames.length&#93; = name;
}
var groupstocheck = new Array();
var groupnames = new Array();
function addGroupToCheck(value,name)
{
  groupstocheck&#91;groupstocheck.length&#93; = value;
  groupnames&#91;groupnames.length&#93; = name;
}

function compareEmail()
{
  return (document.subscribeform.elements&#91;"email"&#93;.value == document.subscribeform.elements&#91;"emailconfirm"&#93;.value);
}
function checkGroup(name,value)
{
  option = -1;
  for (i=0;i<document.subscribeform.elements&#91;name&#93;.length;i++) {
    if (document.subscribeform.elements&#91;name&#93;&#91;i&#93;.checked) {
      option = i;
    }
  }
  if (option == -1) {
    alert ("入力してください: "+value);

    return false;
  }

  return true;
}

</script>   
<form method="post" action="" name="subscribeform" ><table border=0>
  <tr><td><div class="required">電子メール</div></td>
  <td class="attributeinput"><input type=text name=email value="" size="40" />
  <script language="Javascript" type="text/javascript">addFieldToCheck("email","電子メール");</script></td></tr>
  <tr><td><div class="required">Confirm your email address</div></td>
  <td class="attributeinput"><input type=text name=emailconfirm value="" size="40" />
  <script language="Javascript" type="text/javascript">addFieldToCheck("emailconfirm","Confirm your email address");</script></td></tr><tr><td colspan="2">
        <span class="attributeinput"><input type="checkbox" name="htmlemail" value="1"  /></span>
        <span class="attributename">私はHTMLフォーマットで電子メールを受け取ります。</span></td></tr>
</table><input type="hidden" name="list&#91;4&#93;" value="signup" /><input type="hidden" name="listname&#91;4&#93;" value="テストリスト"/><div style="display:none"><input type="text" name="VerificationCodeX" value="" size="20"></div><p><input type=submit name="subscribe" value="選択したメールマガジンの購読" onClick="return checkform();"></p>
    </form>
  1. コピーした部分をページの適当な位置に挿入する。
  2. form 要素の action 属性に購読ページの URL を指定する。
  3. 不要であれば table 要素(tr、td 要素)を削除する。
<form method="post" name="subscribeform" action="http://mydomain.com/phplist/?p=subscribe&id=1">
<div class="required">電子メール</div>
<input type=text name=email value="" size="40" />
  <script language="Javascript" type="text/javascript">addFieldToCheck("email","電子メール");</script>
  <div class="required">Confirm your email address</div>
  <input type=text name=emailconfirm value="" size="40" />
  <script language="Javascript" type="text/javascript">addFieldToCheck("emailconfirm","Confirm your email address");</script>
        <span class="attributeinput"><input type="checkbox" name="htmlemail" value="1"  /></span>
        <span class="attributename">私はHTMLフォーマットで電子メールを受け取ります。</span>
<input type="hidden" name="list&#91;4&#93;" value="signup" /><input type="hidden" name="listname&#91;4&#93;" value="テストリスト"/><div style="display:none"><input type="text" name="VerificationCodeX" value="" size="20"></div><p><input type=submit name="subscribe" value="選択したメールマガジンの購読" onClick="return checkform();"></p>
    </form>

メーリングリストへのメッセージ(ニュースレター)の送信

How to send a message to your phpList mailing list

  • phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  • 右側のメニューリストに「メッセージを送信」が表示されていればそれをクリックするか、または、「Message Functions」タブをクリックして「送信(Send a message)」をクリック

    phplist28

  • 作成済みのメッセージ(Draft messages)からメッセージを選択するか、「Start a new message」をクリックしてメッセージを新規作成する

    phplist29

メッセージの作成と送信

メッセージ送信ページでメッセージを作成し、送信する。以下の様なタブがあるので順番に設定(入力)していき、最後の「Finish」で送信する。

phplist30

  1. コンテンツ:
    メールタイトル、From Line(差出人)、メールコンテンツの指定(HTMLなどで作成するか、特定のページを指定することが可能。但し、ページを指定した場合そのページはメール用にCSSなども含めて作成しておく必要がある)、メッセージやフッタなどを作成
  2. Text:
    テキストバージョンを入力。「Generate from HTML」をクリックするとHTMLをテキストに変換してくれる
  3. フォーマット:
    HTML または Text を選択
  4. スケジュール:
    スケジュールの指定
  5. リスト:
    どのリストを使って送信するかを指定
  6. Finish:
    「Send Campaign」をクリックするとメッセージはキューに入れられ、「キューの処理」というボタンが表示されるのでクリックするとメッセージが送信され、送信の情報が表示される。(注)すべてのメッセージの送信が完了するまでは、このページを開いておく必要がある。

「Send Test」に送信先を指定して「Send Test」をクリックするとテストメールが送信できる。但し、送信先に指定できるのはリストに掲載されているアドレスに限る。

phplist31

到達不能「バウンス」メールの処理

Handling bounces with phpList

何らかの理由(アドレスが間違っているなど)で戻ってきた(バウンス)メールは、以下の設定を行うことにより、指定したアドレスにそのエラーメッセージが送信され、バウンス処理を行うことができる。

config.php の設定

  1. cPanel にログイン
  2. 「Files」から「File Manager」を選択
  3. phplist をインストールしたディレクトリに移動
  4. その中の「config」ディレクトリに「config.php」というファイルがあるので、右クリックして「Code Edit」を選択して、ファイルを編集モードにする。
  5. 「$message_envelope」をいう箇所を探す(73行目あたり)
# $message_envelope = 'listbounces@yourdomain';
  1. 行頭の「#」を削除して、コメントアウトを解除して、実際に使用するアドレスに書き換える。
  2. 更に「bounce_mailbox_user」「bounce_mailbox_password」にも実際のアドレスとパスワードを設定する。
  3. 「Save Changes」をクリックして終了。
$message_envelope = 'listbounces@mydomain.com';  //コメントアウトを解除してアドレスを指定

# Handling bounces. Check README.bounces for more info
# This can be 'pop' or 'mbox'
$bounce_protocol = 'pop';

# set this to 0, if you set up a cron to download bounces regularly by using the
# commandline option. If this is 0, users cannot run the page from the web
# frontend. Read README.commandline to find out how to set it up on the
# commandline
define ("MANUALLY_PROCESS_BOUNCES",1);

# when the protocol is pop, specify these three
$bounce_mailbox_host = 'localhost';
$bounce_mailbox_user = 'listbounces@mydomain.com';  //実際のアドレスを指定
$bounce_mailbox_password = 'MyPa$$W0rd';  //実際のパスワードを指定

バウンスの処理

  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「Message Functions」タブの「バウンスの処理」をクリックする

    phplist32

  3. 指定されたアドレス(この例では listbounces@mydomain.com)に送信されたバウンスメッセージがサーバー(そのメールボックス)から取得される。バウンスしたメールがある場合は以下のように表示される。
1 bounces to fetch from the mailbox
どうかこの処理を中止しないでください。
mailboxをクローズし、メッセージを消去中
連続したバウンスの同定中
total of 1 subscribers processed

処理されたメッセージはmailboxから削除されるでしょう。

  1. 右側のサイドメニューから「バウンスリスト」をクリックすると処理されたメッセージのリストが表示される。

    phplist33

  2. リストの「processed バウンス」の項目をクリックするとその詳細(Bounce Details)が表示されるので、原因の特定に参考にできる。

    phplist34

  3. 「Possible Actions:」の項目にチェックを入れ「Do the above」をクリックすると、指定したアクションが実行される。(デフォルトでは「Delete this bounce and go to the next :削除して次へ進む」にチェックが入っている。

    phplist35

  4. 「processed バウンス」の他に「メッセージ」、「ユーザ」の項目もクリックするとそれらの詳細が表示される。

リストにユーザをインポートする(CSV 形式)

How to import a CSV file of email addresses into phpList
Import Users – Walkthrough

CSV ファイルについて
属性は1行目に記述されている必要がある。
メールアドレスの行の属性名は「email」にする。「e-mail」や「Email Address」は不可。
日本語を使用するには「UTF-8」にしないと文字化けする。

メールアドレスの他に「姓(Last Name)」、「名(Fist Name)」の属性がある場合で区切り文字を「|」とした場合は、以下の様なファイル(test_import.txt)になる。

email|姓(Last Name)|名(Fist Name)
test1@webdesignleave.com|山田|太郎
test2@webdesignleave.com|鈴木|一郎
test3@webdesignleave.com|小泉|佳子
  1. phpList admin ページ(例:http://mydomain.com/phplist/admin/)にログイン
  2. 「リストとユーザ機能(list and user functions)」のタブをクリック
  3. 「インポート(ユーザのインポート)」をクリック

    phplist36

  4. 「Import by uploading a csv file with emails and additional data」をクリック

    phplist37

  5. 「電子メールを追加するリストの選択」で追加先のリストを指定

    phplist38

  6. 「emailsを含んでいるファイル:」の「参照」をクリックして CSV ファイルを指定

    phplist39

  7. 「フィールド区切り文字:」に区切り文字を指定
  8. 「テスト出力:」にチェックを入れる(チェックを入れておくと、インポートする値が表示され、確認後にインポートされる。問題があればインポートをクリアすることができる)。カラムの属性が一致しない場合は、確認画面が表示され、プルダウンより該当するカラムを指定可能。(email のカラムが何故かうまく認識されず、以下の様な表示がされるので、プルダウンより”Email”を選択する)

    phplist40

  9. その他必要なオプションを指定して「インポート」をクリック
  10. 表示される内容を確認して問題がなければ「インポートの確定」をクリック

    phplist41

関連リンク