空メールからの会員登録でパラメータを渡す方法(Postfix)
宛先メールアドレスの"+"以降をパラメータとして扱う
まず、"reg+123@"宛てに送っても"reg+foo@"宛てに送っても、"reg@"にメールが届くようにします。Gmailで使われているテクニックですね。
main.cfを編集する
Postfixの/etc/postfix/main.cfの"recipient_delimiterという項目がコメントアウトされているので、 #を削除して有効にします。# recipient_delimiter = +
↓
recipient_delimiter = +
(Ubuntu9.04ではデフォルトで有効になっていました。)変更を反映させる
変更したらPostfixを再起動します。/etc/init.d/postfix restart
スクリプトでパラメータを抜き出す
あとは、PHPなどスクリプト側で、宛先メールアドレスを正規表現で解析します。
/**
* "reg+12345@example.com"から"12345"部分を抜き出す
*/
function getParam($mailaddress)
{
if(preg_match('/reg\+(.+)/i', $mailaddress, $matched )) {
return $matched[1];
} else {
return false;
}
}
参考
ケータイサイトでメール送受信をする際のポイントをご紹介 : Media Technology Labs (MTL) : メディアテクノロジーラボ ブログ
カテゴリ: