ようこそゲストさん

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

2008/09/27(土) 2008-09-26

Qdmaiのダウンロードページはこちら
  • 2008-09-27
    • 1.1.4b
mb_detect_encodingの第3引数にtrue(strict)を指定するようにした。
mimeEncodeMax()メソッドの追加
debug モード時に、X-QdmailDebugヘッダーをつけるようにした。

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/0103/tb/

ZendFrameWorkで日本語完璧メール

ZendFrameWorkには、Zend_Mailというライブラリがありますが、日本語の処理に難点があるようです。

Qdmailでは、以下のようにします。
ZendFrameWorkのフォルダにqdmail.phpを入れても良し、他のインクルードディレクトリにいれてもよしです。
$mail = new Qdmail();
$mail -> text( 'ここに内容をいれます' );
$mail -> from( 'from@example.com' , '配信元日本語名' );
$mail -> to( 'address@example.com' , '宛先日本語名' );
$mail -> subject( 'タイトルも日本語で' );
$mail ->send();
もし、ビューの内容を送信したいのであれば、
$mail ->send( $this->render() );
でOKです。

Zend_Mailより、マルチバイト対応をしっかりしている(はず)ですので、日本語の題名などのヘッダーも文字化けは少ないと思います。
おまけにZend_Mailでは、デコメを送信するのは至難の業ですが、Qdmailは簡単に各キャリアに送信できます。

# fffffff 2012年12月03日(月) 午後6時34分

fff


#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/0108/tb/
  • デコメール(HTMLメール)対応のメール送信ライブラリ『Qdmail』 携帯サイトをつくろう。
    今回はデコメールに対応したメール送信のライブラリ『Qdmail』を紹介したいと思います。 最近ブラウザの仕様は3キャリアで大分と共通化されてきましたが、デコメール(HTMLメール)に関...

Ethnaで日本語メール送信

EthnaでQdmailを使用する

EthnaでQdmailを使用すれば、テキストメール、HTMLメールはもちろん、デコメも簡単に送信できます。

サンプルコード(アクション)

qd_send_mail型

class Mailtest_Action_Index extends Mailtest_ActionClass
{
        function perform()
        {

            include_once('qdmail.php');

            $regist_user='田中';

            $ethna_mail =& new Ethna_MailSender($this->backend);
            $content = $ethna_mail->send(null,
                'testmail.tpl',
                array('username' => $regist_user));

            qd_send_mail('html',
                'address@mail456.com',
                'えすなテスト',
                $content,
                'from@exaple.com',
                null
            );
                return;
        }
}

OOP型

            include_once('qdmail.php');

            $regist_user='田中';

            $ethna_mail =& new Ethna_MailSender($this->backend);
            $content = $ethna_mail->send(null,
                'testmail.tpl',
                array('username' => $regist_user));

       $mail -> html($content);
       $mail -> to( 'address@example,com' );
       $mail -> from( 'from@example,com' );
       $mail -> subject( 'えすなテスト' );

            return;
        
要は$contentにメールの内容を入れてしまえば、後は普通のQdmailの使い方と同じです。
テンプレートの例示
template/ja/mail/mailtest.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp" />
<link rel="stylesheet" href="{$config.url}css/ethna.css" type="text/css" />
</head>
<body>

<div id="header">
    <h1>Mailtest</h1>
</div>

<div id="main">
    <h2>メールテスト</h2>
    <p>こんにちは、{$username}さん</p>
</div>

<div id="footer">
    Powered By <a href="http://ethna.jp">Ethna</a>-{$smarty.const.ETHNA_VERSION}.
</div>

</body>
</html>

参考

Ethna メール送信サンプル

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/0107/tb/

推奨する環境

最も問題の出にくい、推奨する環境は以下の通りです。

PHP4の場合、PHP 4.4.9
PHP5の場合、PHP 5.2.6以降

スクリプト文字コード:UTF-8に統一
送信方法:SMTP (Qdsmtpと組み合わせ)

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/0105/tb/

要注意のPHPバージョン4.3.11, 5.0.0 -4

  • PHP 4.3.11, PHP 5.0.0 - PHP 5.0.4の不具合
mb_detect_encoding() が正しく動作しないバグ。
文字化けの原因になります。
回避方法: 文字コードをUTF-8かEUC-JPに統一し、unitedCharset()メソッドをお使いください。

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/0104/tb/