相互リンク募集

2008/10/19 未分類 spok
Qdmailサイトでは相互リンクも募集しています。
作者は大量のスパムメールを受け取っているのでタイトルに、必ず「Qdmail相互リンク」といれて、メールをください。
メールアドレスは、サイドバーのmaito spokをクリックするとわかります。

■リンクしたURL

をお書き添えのうえ、ご連絡ください。
ジャンル問わずリンクさせていただきます。
(ただし、公序良俗に反するサイト、その他管理人が不適切と判断したサイトは除く)

こちらへのリンク(例)
サイト名:PHP日本語メール送信ライブラリQdmail
URL: http://hal456.net/qdmail/
※本業が忙しい時もあるので、気長にお待ち下さい。

リンク01

要注意レンタルサーバー

2008/10/19 未分類 spok

qmail を使っているサーバー

qmail(Qdmaiとは違います!)は、レンタルサーバーでよく使われるMTAですが、改行コードの取り扱いについて、あまり褒められたものではありません。

以下の要注意レンタルサーバーにおいては、qmailが使われておりますので、トラブル時とにかくやってみることの、改行コードをLFのみにする、ということをお試し下さい。

なお、qmailを使用していも、PHP が NormalMode で作動している場合は、Qdmailの自動qmail認識(1.2.1以降)が働く(はずです)ので、特段の設定は必要ないと思います(たぶん)。

下記、問題のサーバーにつきましては改行コードの問題は起きないと思います。

ここでの「要注意」の意味は、あくまでもqmailとQdmailの相性問題ということだけで、その他の要素は含んでいません(名前は似ているのにね)。

情報をお寄せ下さい

下記でも、下記以外のサーバーでも、「こんな設定なら動いたよ」ということがありましたら、ぜひこちらのコメント欄にでも、動作報告をお願いいたします。


要注意レンタルサーバー

名称MTAPHP MODE
XREAM.COMqmailSafe Mode
ステップサーバーqmailSafe Mode
ロリポップqmailNormal
プラスアルファレンタルサーバーqmail?
チカッパqmail?
WebARENA SUITEqmail?
Ablenetqmail?
FC2レンタルサーバーqmail?
ラピッドサイトレンタルサーバーqmail?
@SERVERqmail?

不明

(WEB上に詳しい記載がない)

名称MTAPHP MODE
J-Navi??
ライブドアレンタルサーバーSTART??
ASUKA??
ファーストサーバー??
シーサイドネット??
POPWONDER??
レンサバ.COM??
スマイルサーバー??

問題の無いサーバー(たぶん)

名称MTAPHP MODE
XサーバーPostFixNormal
さくらインターネットSendmailNormal
NSFSendmail(たぶん)?
iSLEアイルSendmail?
1stRentalSeverSendmail?
LaCoocan(ラクーカン)@niftySendmail?
12officeレンタルサーバーサービスsendmailか??
SPEEVERsendmail?

qmailとQdmailの違い

当方のソフトウエアのQdmailとMTAのqmailは全く違うものですので、混同しないようにしてください。

メールアドレスのバリデーション

2008/10/04 未分類 spok

メールアドレスのバリデーション

Qdmailでは、メールアドレスを正規表現でチェックしています。
ただし、デフォルトではごく簡単な正規表現であり、@(アットマーク)が含まれているかどうか、程度のものです。
(1.1.8b以降の機能です)

簡単な正規表現にしてある理由

メールアドレスのチェックを完璧に正規表現でチェックするのは、理論的には不可能と言われています。
(参考:メールアドレスに一致する正規表現

正規表現を使う限り、どこかで割り切る必要があり、その程度はシステムの要求される要件によります。
したがって、Qdmailでは、必要最低限の正規表現だけを提供し、その中身を変えたいユーザーのために、正規表現の変更メソッドを用意しています。

Qdmailのデフォルトでは、preg_match関数で
/[^@]+@[^@]+/
となっています。

使い方

$mail -> varidateAddressRegex( 'preg_match用の正規表現' );
サンプル1
$mail -> varidateAddressRegex( '/[^@]+@[^@]+/' );
内部でpreg関数を呼び出しますが、デリミタ(/)は不要です。

サンプル2
Qdmailに渡されたアドレスが、nullまたはカラ文字列''であった場合も、エラーを出さないようにする。
$mail -> varidateAddressRegex( '/([^@]+@[^@]+)|(^$)/' );
サンプル3
CakePHP v 1.2.0.3830 で使われている正規表現
 $mail -> varidateAddressRegex(
    '/^[a-z0-9!#$%&'*+\/=?^_`|~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`|~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]2,4|museum|travel)$/i'
 );

自作バリデーションメソッドの使い方

なお、正規表現で物足りない方は、メールアドレスバリデーション関数を自作して、それをQdmailに組み込むことも可能です。
フレームワークなどでバリデーションメソッドをお持ちの場合は、それを使うこともできるでしょう。

例えば、自作のメールアドレスバリデーション関数が

クラス Validation、メソッドemail()ということであれば、
$mail -> addressValidationMethod('Validation','email');
としてください。
メソッドemailは、バリデーションがOKの場合は、true,ダメな場合はfalseを返り値として返して下さい。

Qdmail内部では
call_user_func( array('Validation','email') , $addr );
のような形で呼び出しています。
(スタティック呼びだしです。)

自作バリデーションメソッドの例

<?php

class Validation {

   function email( $address ){

   if(0==preg_match( '/([^@]+@[^@]+)|(^$)/' , $address)){
         return false;
      }else{
         return true;
      }
   }

}
このクラスのファイルはユーザーにてあらかじめインクルードしておいてください。
(自作するならもっと複雑なメソッドになるでしょうね)