Open Source Web Development Tutorials - Dev Shed
PHPでメール送信機能を実装しよう
(2009/02/26公開)
PHPでメールを送信する
PHPのツールを理解したところで、ファイルを添付したメッセージを送信する簡単なアプリケーションを書いてみましょう。添付ファイルのあるメッセージを送信するには、メールを添付ファイルとして送信するように指示するメールヘッダーを送信しなくてはなりません。ヘッダーは、以下のようになります。
Content-disposition: attachment; filename=myfile.doc
上記のヘッダーでは、メールに対して、myfile.docというファイルを伴った添付ファイルとしてメッセージを送信するように指示しています。したがって、添付ファイルと一緒に短いメッセージを送信したい場合は、以下のようになります。
<?php
$to = "esme@holidays.com";
$subject= "Lunch?";
$message = "This is my first test of the mail() function.";
$headers ="Content-disposition: attachment;
filename=myfile.docn";
$headers .= "cc:salles@mycompany.comn";
$result=mail($to, $subject, $message, $headers);
?>
添付ファイルを送信するときには、もうひとつ、非常に大切な手続きがあります。ファイルのコンテンツタイプを設定することです。コンテンツタイプには、以下があります。
・image/gif
・image/jpeg
・audio/x-wav
・audio/vnd.rn-realaudio
・video/mpeg
・video/avi
アプリケーションファイルを送信したい場合もあるかもしれませんね。アプリケーションファイルには、テキストファイルとバイナリファイルがあります。例えば、RTFファイルはテキストファイルですが、Word文書はバイナリファイルです。一般的に、バイナリファイルのタイプはapplica/octed streamです。バイナリファイルをメールで送信するには、符号化しなくてはなりません。まさにこの仕事をしてくれるのがPHPのchunk_split()関数です。
$encode = chunk_split(base64_encode($string));
さらに、符号化したファイルを送信するときは、その旨をメールソフトウエアに通知しなくてはなりません。これは、mail関数のヘッダー部分で行います。
Content-Transfer-Encoding: base64
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








