ようこそゲストさん

CPA-LABテクニカル

2008/04/05(土) PHPで簡単にメールを送りたいだけなのに。

はてブ情報 はてブに登録 はてブ数 qdmailspok
ユーザーからのアクションをきっかけにちょっとしたメールを送りたいことがある。

追記PHP高機能日本語メールライブラリQdmail完成しました。

それは、ユーザー登録の認証だったり、サンクスメールだったり、確認メールだったり。
しかし、PHPの mb_send_mail は、toヘッダへの日本語がうまく通らなかったり(上手にやればできるけど)、添付ファイルはかなり工夫しないと送れない。
pearのMailコンポーネントは、詳細な設定ができるけど、インターネットメールについて、それなりの知識がなければいけない。そもそもpearのインストールが面倒だったり*1、PHP初心者にはわからなかったりする。

もちろん、デフォルトのmail関数は、そのままでは日本語が通らない。
世の中には、pear MAILのラッパー関数を自作している人が多いように見受けられる。

PHPMailerというものの方が、簡単に送れる、とこちらPHPで日本語メールを送る - 応用編 (添付ファイル、HTMLメール) - EC studio 技術ブログでは紹介されているけれども、私には、あまり違いは感じられない。
そもそも、mb_mime_header とか 文字コードのjisとかiso-2022-jpなんて言葉が出てきた時点で、もう初心者はアウトなんである。

ましては、MIME-Typeとかtransfer-encodingとかbase64にまでなってくると、????の人も多いのだ*2
私だって、少し前はこんな状態だったのだ。
「文字コードなんて、Shift-JIS,EUC,UTF-8 しか知らないよ。jisとisoとか、それっておいしいの? そうそう最近、euc-JPwinなら食べたよ。」

「pear って梨ですよね。」

「文字コードの7bitとか、8bitとかなんですかそれは」

「エンコードと文字コードとキャラセットの違いってなんかあるんすか」

「なんで、この時代に、添付ファイルのメールひとつ簡単に送れないんすか」

「なんで、携帯に「この形式は表示できません」なんてメールが送られてくるんですか。」

「マルチパートって給料いいですか」
インターネットメールは奥が深く、RFCやらなんやらの決まり事と、各メーラーやメールサーバーの設定が食い違ったりすることが多く、なかなか完全なメールを送ることは難しいのである。
しかも、それをマルチバイトの日本語で、となるとさらに大変。
さらに、特殊な日本の携帯端末へ、となるとさらに大変。

現時点で添付ファイルをメールで送ろうとすると、pearのMailがそれなりの選択肢なんだろうけど、それにしても、こんな PEARMail_Mime Mime変換、マルチパートメール作成 とか PHPスクリプト無料配布所 PHP.TOファイルを添付してメールを送信する方法 とかいう、とても面倒な(少なくとも初心者にとっては)コードをかかなければいけないなんて。。。。(これらのサイト様の情報は大変有意義なものですが、初心者には難しすぎます。)


PHPって、WEBと適合性がよい言葉のはずですよね。


もちろん、他の言語でメールを送るのはPHPと同程度か、もしくはもっと大変な場合も多いと思います。むしろPHPは簡単なほうかもしれない。

でも、htmlやっとこさ覚えました。PHPで、動的ページも作れるようになりました。
という人間が
  • ただちょこっと添付ファイル送りたいだけなんだけど
  • ただ、fromに日本語名を書きたいんだけど
という、非常にささやかな要望にPHPが答えられていないのは、どうなんだろう。

そして、ある程度、スキルのある者でも、メールはやっかいだ。
文字コードのうっかりミス。
ファイル添付はどうするんだっけ。忘れちまったよ。
過去に自分が作ったmailラッパーも、次の環境では大幅に書き直さなくては使えなかったり、一般的な環境でもOKなように作ろうとすると、意外に大変な作業であることに気づき挫折したり、標準仕様と、各実装の違いに悩まされたり、、、、、と大変。


私もCakePHPでSemailなどを作ってみたわけだけど、*3、すべてのアプリをCakePHPで作っているわけでもなく、わざわざメールのためにCakePHPを入れるのもたいそうな話であり、なかなかいいメールラッパーがないというのが現状のように思う。


「メールの基本を知らない人が、メールアプリなんか作っちゃいけないよ」という考え方もあろうかと思うけれども、私は否定する。

メールの基本なんて知らなくても、PHPで簡単に&確実に様々なメールを送ることができる世の中にしたいものだ。と思う。


エンジンの構造なんて知らなくても、車は便利につかいこなせるように。

*1 : 理解すればなんてことないのだけど

*2 : と勝手に想像している

*3 : もちろん完全ではなく、早くマルチバイトワードラップ部分やヘッダのおかしな部分などを直したい。

そこで、なるべく簡単な、「日本語で、from,to,subject,添付ファイル、認証用url置換」ができるメールクラスを

作っている最中です。
どうなることやら。

ごついこといってしょぼいスクリプトしかでてこなかったらごめんなさい。


追記PHP高機能日本語メールライブラリQdmail完成しました。

名前:  非公開コメント   

  • TB-URL  http://www.cpa-lab.com/tech/0124/tb/
  • ただ簡単にメールを送りたいだけだったのにPHP CPA-LABテクニカル spok
    PHPで簡単にメールを送りたいだけなのに。から、半年。次回のメジャーバージョンアップは、絵文字ですが、本業が忙しく、しばらく後になりそうです。それ以外は機能拡張の予定もなくなってきました。後は安定性の向上です。日本語高機能PHPライブラリQdmailはそれ...