はじめに

オープンソースのメールマガジン・メーリングリスト管理ソフト「PHPList」についてです。
PHPListを使ったメルマガ登録は、登録アドレス送信→確認メール→メール記載のURLをクリック→承認(登録完了)という流れが基本的な仕様となっています。しかし、場合によっては、登録アドレス送信→承認(登録完了)というふうにしたいこともあるかもしれません。(これだと本人確認ができないですが、、)

今回は、そんな場合の方法、いじる場所を忘れないように書いておこうと思います。

Contents

手順

まず、いじっていくファイルですが、
「\public_html\lists\admin」内の「subscribelib2」というファイルです。

このファイルの155行目付近の次のような個所を探してください。

# they do not exist, so add them
$query = sprintf('insert into %s (email,entered,uniqid,confirmed,
htmlemail,subscribepage,rssfrequency) values("%s",now(),"%s",0,%d,%d,"%s")',

この部分は、「they do not exist, so add them」と書かれているように、送られてきたデータがデータベースに存在しない場合に、それらを追加するという処理のはじめの部分です。メルマガ登録処理のはじめの部分ですかね。
そして、実際の変更は、

values("%s",now(),"%s",0,%d,%d,"%s")',

values("%s",now(),"%s",1,%d,%d,"%s")',

に。つまり、「0」を「1」にしてくだい。そうすれば、自動で承認済みになります。

仕組み

では、なぜそうなるか。この「0」は、データベースに挿入される値なのですが、

$query = sprintf('insert into %s (email,entered,uniqid,confirmed,

この最後の「confirmed」に対応しています。つまり、初期設定では、データベースのユーザ情報が入っているテーブルの「confirmed」には、否応なく「0」が入ります。「0」は未承認。データはあるけど登録は完了しておらず、メールは配信されない、という仮登録状態です。これが、確認メールのURLクリックで「1」になり、承認されるということでしょう。

そこで、これをはじめから「1」にしてあげることで、情報が送信されてきた時点で承認済みになるわけですね。

PHPListに関しては、意外と情報が少なく、英語のフォーラムを読み漁っているという苦しい状態ですが、なんとか読み解けていけたらと思います。

参考サイト