-
-
- /**
- * 添付ファイル付きメールを送信
- * by bbs.it-home.org
- */
- class CMailFile {
- var $subject;
- var $addr_to;
- var $text_body;
- var $text_encoded;
- var $mime_headers;
- var $mime_boundary = "--==================_846811060==_";
- var $smtp_headers;
-
- function CMailFile($subject,$to,$from,$msg,$filename,$downfilename,$mimetype = "application/octet-stream",$mime_filename = false) {
- $this->subject = $subject ;
- $this->addr_to = $to;
- $this->smtp_headers = $this->write_smtpheaders($from);
- $this->text_body = $this->write_body($msg);
- $this->text_encoded = $this->attach_file($filename,$downfilename,$mimetype,$mime_filename);
- $this->mime_headers = $this->write_mimeheaders($filename, $mime_filename);
- }
-
- functionattach_file($filename,$downfilename,$mimetype,$mime_filename) {
- $encoded = $this->encode_file($filename);
- if ($mime_filename) $filename = $mime_filename;
- $out = "--" 。 $this->mime_boundary 。 「ん」;
- $out = $out 。 "コンテンツ タイプ: " 。 $mimetype 。 "; 名前="$ファイル名";n";
- $out = $out 。 "コンテンツ転送エンコーディング:base64n";
- $out = $out 。 "コンテンツの性質: 添付ファイル; ファイル名="$downfilename"nn";
- $out = $out 。 $encoded 。 「ん」;
- $out = $out 。 「――」。 $this->mime_boundary 。 「――」。 「ん」;
- $out を返す;
- }
-
- function encode_file($sourcefile) {
- if (is_readable($sourcefile)) {
- $fd = fopen($sourcefile, "r");
- $contents = fread($fd, filesize($sourcefile));
- $encoded = chunk_split(base64_encode($contents));
- fclose($fd);
- }
- $encoded を返します。
- }
-
- function sendfile() {
- $headers = $this->smtp_headers . $this->mime_headers;
- $message = $this->text_body 。 $this->text_encoded;
- mail($this->addr_to,$this->subject,$message,$headers);
- }
-
- function write_body($msgtext) {
- $out = "--" . $this->mime_boundary 。 「ん」;
- $out = $out 。 "Content-Type: text/plain; charset="us-ascii"nn";
- $out = $out 。 $msgtext 。 「ん」;
- $out を返す;
- }
-
- function write_mimeheaders($filename, $mime_filename) {
- if ($mime_filename) $filename = $mime_filename;
- $out = "MIME バージョン: 1.0n";
- $out = $out 。 "コンテンツ タイプ: マルチパート/混合; ";
- $out = $out 。 "boundary="$this->mime_boundary"n";
- $out = $out 。 "コンテンツ転送エンコーディング: 7BITn";
- $out = $out 。 "X 添付ファイル: $filename;nn";
- $out を返す;
- }
-
- function write_smtpheaders($addr_from) {
- $out = "From: $addr_fromn";
- $out = $out 。 "返信先: $addr_fromn";
- $out = $out 。 "X-メーラー: PHP3n";
- $out = $out 。 "X 送信者: $addr_fromn";
- $out を返す;
- }
- }
-
- /*用法 - 例:mimetype は "image/gif"
- $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype);
- $mailfile->sendfile();
-
- $subject -- 主题
- $sendto -- 收信人地址
- $replyto -- 回复地址
- $message -- 信件内容
- $filename -- 添付ファイルファイル名
- $downfilename -- 下載ファイル名
- $mimetype - - mime 型
- */
- ?>
复制代
2、デモの例demo.php
- require_once('emailclass.php');
-
- //メールを送信
-
- //件名
- $subject = "メール送信テスト"
-
- //受信者
- = 'abc@163.com';
-
- //Sender
- $replyto = 'cdf@163.com';
-
- //Content
- $message = "メールの内容をテスト送信"; 'test.jpg';
-
- //添付ファイルのカテゴリ
- $mimetype = "image/jpeg"
-
- $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename, $excelname,$mimetype );
- $mailfile->sendfile();
- ?>
-
-
- コードをコピー
-
>>> 興味のある記事:
phpソケットはsmtpを使用して添付ファイル付きのメールを送信します
Php での IMAP アプリケーションの例 (メールの送受信、メールの削除、添付ファイルのダウンロード)
添付ファイル付きのメールを送信するPHPMailerの例
PHPMailer によって送信されたメール内の中国語の添付ファイル名が文字化けする問題の解決策
|