ようこそゲストさん

Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

メッセージ欄

分類 【未分類】 で検索

一覧で表示する

Qdsmtpのログ設定と同期を取る

QdmailとQdsmtpを併用している場合、Qdmailのログのレベルを以下のメソッドで、Qdsmtpに渡して、同レベルのログをとるよう、Qdsmtpに指示することができます。
$mail -> smtpLoglevelLink( true );

# 改行コードを挿入したい 『■Qdmailのバージョン 1.2.6b メール送信時に本文に動的に改行を入れたいのですが、 \n、\r\nを入れても改行されま...』 (2009/03/15 20:03)

# fivestar 『バグ報告なのですが、sfQdmail::addBcc()メソッドがbccではなくccに追加するようになっています。修正をお願いい...』 (2010/03/09 24:25)

# mkt 『Qdmail.phpと、Qdsmtp.phpをインクルードパス配下に置き、 下記の記述をしましたが(★は該当の値に変更)、 「5...』 (2012/10/30 16:10)

相互リンク募集

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

■リンクしたURL

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

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

リンク01

要注意レンタルサーバー

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は全く違うものですので、混同しないようにしてください。

# kado 『ロリポップのレンタルサーバではメールの本文中にヘッダなどが入ってしまい、使えたものではありません。 ちなみにMTAはPostf...』 (2009/10/09 10:08)

# ode 『@serverにて設定に非常に苦労しました。 無事成功しましたので、こちらで共有させていただきます。 ※今のところ、qmail...』 (2013/03/15 18:12)

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

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

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;
      }
   }

}
このクラスのファイルはユーザーにてあらかじめインクルードしておいてください。
(自作するならもっと複雑なメソッドになるでしょうね)
  • 2008-10-04 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-10-04 1.1.8b メソッド新設varidateAddressRegex()addressValidationMethod()allowBlankHeader

Qdmailを使用したサイト

Qdmail、Qdsmtp、QdReceiver,QdSimpleMailを利用していただいているサイト