如何使用PHP发送邮件

介绍PHP如何发送邮件
服务器君一共花费了556.156 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

PHP发送邮件的小程序很简单,不过有些需要注意的地方。先上代码:

<?php    
    $to = "gonnsai@163.com";  
	
	$user = "Gonn";
	$date = date("Y年m月d日");
	
	$headers  = 'MIME-Version: 1.0' . "rn";
	$headers .= 'Content-type: text/html; charset=utf-8' . "rn";
	$headers .= "To: $to rn"; 
	$headers .= "Cc: 252211974@qq.com rn"; 
	$headers .= 'From: gonnsai@163.com' . "rn";
    $subject = "珠海生活圈";  
	$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
 
    $content = '亲爱的'."$user".':'.'<br />';  
	$content .= '<br />';  
	$content .= "感谢您注册珠海生活圈,精彩的生活从珠海生活圈开始!".'<br />';  
    $content .= "在珠海生活圈,您可以:".'<br />';  
	$content .= "查询珠海的商家情况,方便您生活与娱乐。".'<br />';  
	$content .= "了解最近珠海举行的活动,让您的生活更加丰富。".'<br />';  
	$content .= "浏览新闻热点,扩展知识面。".'<br />';  
	$content .= '<br />';  
	$content .= "珠海生活圈 -- 为建成珠海最大的商家数据库而不断努力着。 ".'<a href="http://www.zhuhailife.net" target="_blank">www.zhuhailife.net</a>'.'<br />'; 
	$content .= '<br />';  
	$content .= "珠海生活圈团队".'<br />'; 
	$content .= "$date".'<br />';  
    $result = mail($to, $subject, $content, $headers);  
	
	if($result)
	{
		echo '邮件发送成功!';
	}
	
?>  

有几个需要注意的地方。如果上面的代码没有 $subject = "=?UTF-8?B?".base64_encode($subject)."?="; 这么一句,你会发现邮件的标题是乱码,而邮件正文却是正确的。邮件头需要先用函数base64_encode(),就是使用 MIME base64 对数据进行编码。标题字符串前加编码类型例如: =?UTF-8?B?。

还有邮件的类型设置为$headers = 'MIME-Version: 1.0' . "rn";。

摘wiki的解释:多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。这个标准被定义在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 由RFC 822转变而来的RFC 2822,规定电子邮件标准并不允许在邮件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英语字符消息和二进制文件,图像,声音等非文字消息都不能在电子邮件中传输。MIME规定了用于表示各种各样的数据类型的符号化方法。 此外,在万维网中使用的HTTP协议中也使用了MIME的框架。

MIME是通过标准化电子邮件报文的头部的附加领域(fields)而实现的;这些头部的附加领域,描述新的报文类型的内容和组织形式。

$headers .= 'Content-type: text/html; charset=utf-8' . "rn"; 当制定类型为 html的时候,邮件正文就可以使用 HTML 的标签了。

几种常见的类型:

  • text/plain(纯文本)
  • text/html(HTML文档)
  • application/xhtml+xml(XHTML文档)
  • image/jpeg(JPEG图像)【PHP中为:image/pjpeg】
  • image/gif(GIF图像)
  • image/png(PNG图像)【PHP中为:image/x-png】
  • video/mpeg(MPEG动画)
  • application/pdf(PDF文档)
  • application/msword(Microsoft Word文件)
  • application/octet-stream(任意的二进制数据)
  • application/x-www-form-urlencoded(使用HTTP的POST方法提交的表单)
  • multipart/form-data(同上,但主要用于表单提交时伴随文件上传的场合)

此外,尚未被接受为正式数据类型的subtype,可以使用x-开始的独立名称(例如application/x-gzip)。vnd-开始的固有名称也可以使用(例:application/vnd.ms-excel)。

parameter可以用来指定附加的信息,更多情况下是用于指定text/plain和text/htm等的文字编码方式的charset参数。MIME根据type制定了默认的subtype,当客户端不能确定消息的subtype的情况下,消息被看作默认的subtype进行处理。Text默认是text/plain,Application默认是application/octet-stream而Multipart默认情况下被看作multipart/mixed。

本文地址:http://www.nowamagic.net/librarys/veda/detail/557,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/557

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《设计模式:可复用面向对象软件的基础》 Erich Gamma (作者), Richard Helm (作者), Ralph Johnson (作者), John Vlissides (作者), 李英军 (译者), 等 (译者)

《设计模式:可复用面向对象软件的基础》是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年设计经验的结晶。四位顶尖的面向对象领域专家精心选取了最具价值的设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。本书已经成为面向对象技术人员的圣经和词典,书中定义的23个模式逐渐成为开发界技术交流所必备的基础知识和语汇。

更多计算机宝库...