システム開発ブログ/ ソフトウエア開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

PEAR::Mail_MIMEで添付ファイル(日本語ファイル名)付きメール送信

松本
松本 (2010年6月 2日 11:50)
ソフトウエア開発部 / PHP

先日、PHP(Linux上のApacheで動作)で、
添付ファイル付きのメール送信処理を実装しました。

PEAR::Mailと、PEAR::Mail_MIMEを使用して実装したところ、
メール送信処理はうまく行ったのですが、
添付したファイル名が日本語の場合に、文字化けが起きてしまいました。

PHPの内部エンコーディングや、PEAR::Mail_MIMEに設定する文字コードも設定し、
mb_convert_encodingや、mb_encode_mimeheaderを使用して、
ファイル名をエンコードしてみたりしましたが、どうにも解決できません。

結局のところ、PEAR::Mail_MIMEのaddAttachment(ファイル添付用の関数)内で、
ファイル名をbasename関数を使用して取得しているのが原因でした。

PHPのbasename関数を使用した場合に、日本語ファイル名がうまく取得できない現象は、
既知の問題だということでした。

今回は、PEAR::Mail_MIMEのaddAttachmentのbasename関数部分で使用している引数は、
パスではなくファイル名を渡し(パスを渡す引数は別に用意されていたので...)、
basename関数を使わないようにすることで対応し、
日本語名のファイルを添付してメールを送信することができました。


<参考>
※PEAR::Mailマニュアル
http://pear.php.net/manual/ja/package.mail.mail.php

※PEAR::Mail_MIMEマニュアル
http://pear.php.net/manual/ja/package.mail.mail-mime.php

※basename関数
http://php.net/manual/ja/function.basename.php

※basenameの問題について
http://bugs.php.net/bug.php?id=37738

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。