ようこそゲストさん

QdSimpleMail-文字化け防止PHPメーラー

メッセージ欄

2008年6月の日記

ダウンロードQdSimpleMail-PHP

ライセンス(License)

このPHPプログラム Qdmail はオープンソースであり、MIT Liceseでライセンスされています。
http://www.opensource.org/licenses/mit-license.php

改変、再配布、商用利用は自由に行えます。ライセンスに基づく限り、無料であり、貴方はどこにもお金を支払う必要はありません*1

このライセンスを守るのが難しい方は作者に連絡をとってください。
連絡先は、プロフィールに記載してあります。私は多くのスパムメールを受け取っているので、必ず、E-mailの"subject"には"Qdmail"の言葉を入れて下さい。

作者は、操作に関する質問はメールでは受け付けていません。質問のある方はこのサイトの適当な記事にコメントをつけることで行って下さい。ただし、作者の都合により、その質問には回答が寄せられないことがあります。

*1 : くれるというならいただきます

本文の改行について

QdSimpleMailでは、本文中の改行について、文字数による折り返しは行っていません。
ユーザーが改行しなければ、QdSimpleMailもそのまま改行なしで送信します。

一方で、インターネットの標準的なルールでは、1行は75バイトが推奨され*1、1行が1000バイトを超えることは許されません*2

ですので、ユーザーにおかれましては、必ず、1行は1000バイト以内になるようにしてください。

なお、ユーザーが入力する本文の改行コードは、CRLFでもLFのみでも、どちらでも問題ありません。

*1 : あくまでも推奨なので超えても良い

*2 : 1000文字の制限は絶対にまもらなければならない

トラブルシューティング

本文が消えてしまう。携帯でうまく受信できない。

改行コードの変更

QdSipleMailでは、RFCに従い、ヘッダーの改行コードをCRLFとしています。
しかし、sendmailではないメール送信サーバー、特にqmailを使用している場合、改行コードがCRLFではなくLFのみでないと誤動作することがあるようです。
自動認識を装備していますが、当該自動認識がうまく働かない場合もあるかと思います。
その場合は、強制的に改行コードをLFのみにするように変更してみてください。
改行コードをLFのみにする方法
オプションで、LFを指定してください。
$option = array('LF'=>true);

QdSimpleMailリファレンス

ユーザー入力文字コードの変更

QdSimpleMailでは、ユーザーから入力される文字コードはmb_detect_encoding関数にて自動判別します。
しかし、入力文字数が少ない時などは、その自動判別に失敗する時があります。
その場合は、オプションにて、入力される文字コードを明示的に指定することで文字化けを押さえられる場合があります。
例えばutf-8で入力している場合には、以下のようにしてみてください。

$option = array('CHARSET_ORG'=>'UTF-8');

QdSimpleMailリファレンス

リファレンス

関数リファレンス

使い方の例はこちら

 qd_simple_mail( 宛先アドレス , 宛先日本語名 , 件名 , 本文 , フロムアドレス , フロム日本語*1  , 追加ヘッダー*1 , オプション*1 ,MTAオプション*1)
追加ヘッダーの指定方法
追加ヘッダーは、array( 'ヘッダー名'=>'値' )
値が、メールアドレスであり、かつ、名前もつけたい場合は、以下のようにする
array('cc'=>array('cc@example.com','○○さん'))
オプションの指定方法
array('オプション名'=>'値')
オプションの種類
オプション名意味
CHARSET_HEADER文字コードヘッダーの文字コード指定*2
CHARSET_CONTENT文字コード本文の文字コード指定*2
CHARSET_ORG文字コードユーザー入力の文字コード指定*3
ENC_CONTENT7bit,8bit,base64本文のエンコード指定*4
LF-ヘッダーの改行コードをLFにする*5
CRLF-ヘッダーの改行コードをCRLFにする*5

QdSimpleMailに渡す文字コード

QdSimpleMailに渡す文字コードは、自動判別するため、特に意識する必要がありません。
明示的にコードを指定する場合は、文字コードの明示的指定をご覧下さい。

*1 : 省略可

*2 : デフォルトはiso-2022-jp

*3 : デフォルトでは自動判別

*4 : デフォルトは7bit

*5 : デフォルトはCRLF

  • トラブルシューティング QdSimpleMail spok
    ■本文が消えてしまう。携帯でうまく受信できない。改行コードの変更QdSipleMailでは、RFCに従い、ヘッダーの改行コードをCRLFとしています。しかし、sendmailではないメール送信サーバー、特にqmailを使用している場合、改行コードがCRLF...