`
conkeyn
  • 浏览: 1529032 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

php mail 支持UTF-8,附件

    博客分类:
  • PHP
PHP 
阅读更多
<?php
class mime_mail {
	var $parts;
	var $to;
	var $from;
	var $headers;
	var $subject;
	var $body;
	//  
	function mime_mail() {
		$this->parts = array ();
		$this->to = "";
		$this->from = "";
		$this->subject = "";
		$this->body = "";
		$this->headers = "";
	}
	//        
	function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
		$this->parts [] = array ("ctype" => $ctype, "message" => $message, "encode" => $encode, "name" => $name );
	}
	//  (multipart)
	function build_message($part) {
		$message = $part ["message"];
		$message = chunk_split ( base64_encode ( $message ) );
		$encoding = "base64";
		return "Content-Type: " . $part ["ctype"] . ($part ["name"] ? "; name = \"" . $part ["name"] . "\"" : "") . "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
	}
	
	function build_multipart() {
		$boundary = "b" . md5 ( uniqid ( time () ) );
		$multipart = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
		for($i = sizeof ( $this->parts ) - 1; $i >= 0; $i --){
			$multipart .= "\n" . $this->build_message ( $this->parts [$i] ) . "--$boundary";
		}
		return $multipart .= "--\n";
	}
	
	//  ,    
	function send() {
		$mime = "";
		if (! empty ( $this->from ))
			$mime .= "From: " . $this->from . "\r\n";
		if (! empty ( $this->headers ))
			$mime .= $this->headers . "\r\n";
		if (! empty ( $this->body ))
			$this->add_attachment ( $this->body, "", "text/plain; charset=utf-8" );
		$mime .= "MIME-Version: 1.0 \r\n" . $this->build_multipart ();
		$this->subject = "=?UTF-8?B?".base64_encode($this->subject)."?=";
		return mail ( $this->to, $this->subject, "", $mime );
	}
}
?> 

<?php 
//例子
/*
$attachment = fread ( fopen ( "upload/200901/4az0xokifcu6k.jpg", "r" ), filesize ( "upload/200901/4az0xokifcu6k.jpg" ) );
$mail = new mime_mail ( );
$mail->from = "my@e-mail.com";
$mail->headers = "Errors-To: [EMAIL=my@e-mail.com]my@e-mail.com[/EMAIL]";
$mail->to = "conkeyn@163.com";
$mail->subject = "PHP atachment";
$mail->body = "Get your file!";
$mail->add_attachment ( "$attachment", "4az0xokifcu6k.jpg", "Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAgEASABIAAD/7QT+UGhvdG9zaG" );
$mail->send ();
*/
?>
 
分享到:
评论

相关推荐

    用PHP制作带附件的E-mail.pdf

    charset=UTF-8\r\n"; $body .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $body .= $message . "\r\n"; // 添加附件 $body .= "--PHPBoundary\r\n"; $body .= "Content-Type: $filetype; name=\"$filename\"\r\...

    phpmailer - 用PHP发邮件

    - **国际字符集支持**:支持多种字符集,如UTF-8,方便发送包含非ASCII字符的邮件。 - **附件上传**:用户可以通过表单上传附件,然后使用PHPMailer进行发送。 - **使用Gmail发送**:通过设置Google的OAuth2凭证,...

    使用PHP mail()函数发送有附件的邮件

    charset=\"utf-8\"\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= "这是邮件的正文内容。\n"; ``` 3. **添加附件**:对于每个附件,我们需要创建一个新的MIME部分,设置 `Content-Type`...

    PHP实例开发源码-嘉缘 php人才系统UTF8.zip

    《PHP实例开发源码-嘉缘 php人才系统UTF8.zip》是针对PHP编程语言的一份实战项目源码,主要用于理解并学习PHP在构建人才招聘系统中的应用。此压缩包包含了必要的文件,帮助开发者深入理解PHP如何处理用户交互、数据...

    zend_mail乱码处理

    $mail-&gt;setCharset('utf-8'); ``` 2. **处理邮件主题**:邮件主题同样需要设置合适的编码,因为它是邮件头部的一部分。使用 `subject()` 方法时,可以传递编码参数: ```php $mail-&gt;subject('这是一个测试邮件'...

    PHPMailer-master邮件类.zip

    $mail-&gt;CharSet = "utf8"; // 编码格式为utf8,不设置编码的话,中文会出现乱码 $mail-&gt;SMTPAuth = true; // 是否使用身份验证 $mail-&gt;setFrom('xxxxxxx@163.com', 'myafa'); // 设置发件人信息,如...

    PHPMail邮件发送

    此外,还可以设置邮件编码(如UTF-8)、内容类型(如HTML或纯文本)以及SMTP服务器的配置。 `class.smtp.php`文件是PHPMailer的SMTP处理类,负责与SMTP服务器进行通信。SMTP(Simple Mail Transfer Protocol)是...

    php发送mail的phpmailer

    $mail-&gt;CharSet = 'UTF-8'; // 设置字符集 ``` 3. **SMTP配置**:如果要通过SMTP服务器发送邮件,需要配置SMTP服务器的详细信息: ```php $mail-&gt;Host = 'smtp.example.com'; // SMTP服务器地址 $mail-&gt;SMTPAuth =...

    php发送邮件功能(qq授权可传递附件功能)

    $mail-&gt;CharSet = 'UTF-8'; // 设置字符编码 ``` 4. **设置邮件信息**:添加邮件主题、正文和附件。 ```php $mail-&gt;Subject = '邮件主题'; $mail-&gt;Body = '邮件正文内容'; $mail-&gt;AddAttachment('path/to/...

    让phpmailer支持中文名称的附件和邮件标题中文乱码

    $mail-&gt;CharSet = "UTF-8"; // 设置编码 // 添加附件 $file_path = "/path/to/中文文件名.txt"; $mail-&gt;AddAttachment($file_path, $file_path); // 设置邮件标题 $mail-&gt;Subject = "中文标题测试"; // 其他邮件...

    thinkPHP3.2.3 使用PHPMailer实现发送邮件

    'charset' =&gt; 'utf-8', // 编码,一般选择UTF-8 ), ``` 然后,在你需要发送邮件的控制器中,引入PHPMailer类,并实例化一个对象。在ThinkPHP中,你可以这样做: ```php import('Vendor....

    php发邮件,屏蔽乱码

    $mail-&gt;CharSet = 'UTF-8'; // 使用UTF-8编码,适用于大多数语言 ``` 5. **发送邮件**:最后,调用`send()`方法发送邮件。 ```php if(!$mail-&gt;send()) { echo '邮件发送失败: ' . $mail-&gt;ErrorInfo; } else { echo...

    class.phpmailer.php

    2. 邮件编码:为避免字符乱码,应使用正确的编码方式,如UTF-8。 3. 反垃圾邮件策略:遵循邮件发送的最佳实践,避免触发垃圾邮件过滤器。 4. 错误处理:添加适当的错误处理机制,以便在发送失败时捕获并处理错误。 ...

    解决邮件乱码问题

    MIME编码用于处理非纯文本的邮件内容,如图片、附件等,而字符集定义了字符的表示方式,如ASCII、UTF-8等。在处理多语言或特殊字符时,选择正确的字符集至关重要。 在PHPMailer中,我们可以用以下方法设置邮件编码...

    PHPMailer (本人用的tp5 将其放置extend/org 文件下)

    $mail-&gt;CharSet = 'UTF-8'; // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名 $mail-&gt;FromName =''; // smtp登录的账号 QQ邮箱即可 $mail-&gt;Username = ''; // 你的QQ邮箱 // smtp登录的密码...

    PHPMailer:PHP的经典电子邮件发送库-开源

    支持UTF-8内容以及8位,base64,二进制和带引号的可编码。 通过SMTPS和SMTP + STARTTLS传输使用LOGIN,PLAIN,CRAM-MD5和XOAUTH2机制进行SMTP身份验证。 自动验证电子邮件地址。 许多PHP开发人员需要通过其代码发送...

    邮件发送类PHPMailer

    10. **字符集支持**:支持各种字符集,如UTF-8,保证非ASCII字符的正确显示。 在使用PHPMailer时,首先需要安装这个库。通常,这可以通过Composer(PHP的依赖管理工具)完成。在项目根目录下运行以下命令: ```...

    PHPMailer 源码包

    10. **国际字符集支持**:PHPMailer 支持 UTF-8 和其他多种字符集,使得非英文字符也能正确显示,适应全球用户的需要。 总的来说,PHPMailer 作为一款强大的 PHP 邮件发送工具,以其全面的功能、良好的可扩展性和...

    phpmailer中文乱码问题的解决方法

    $mail-&gt;CharSet = 'UTF-8'; ``` 这样,邮件的正文部分将以UTF-8编码,使得在国际化邮箱如Gmail中,中文可以被正确显示。 步骤3:处理邮件标题的乱码问题 虽然设置了邮件内容的字符集为UTF-8,但邮件标题仍可能显示...

    使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)

    $mail-&gt;CharSet = 'utf-8'; // 设置字符集为UTF-8 $mail-&gt;SetLanguage('ch', 'include/PHPMailer/language/'); // 设置语言类型和语言文件目录 $mail-&gt;IsSMTP(); // 使用SMTP方式发送 $mail-&gt;SMTPAuth = true; // ...

Global site tag (gtag.js) - Google Analytics