问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能写一个用PHP发送邮件的类,同时能介绍以下PHP发送邮件的原理吗?

发布网友 发布时间:2022-04-29 11:35

我来回答

2个回答

懂视网 时间:2022-04-29 15:56

9.jpg

虽然有现成的类库(如PEAR)可以很方便地实现附件添加和发送,但是对于一些小站点(服务器硬件、网站规模都不理想),安装PEAR可能会带来不必要的负担,降低WEB程序运行效率。

通过对邮件格式的认识,我们可以写一个脚本来发送附件。代码并不长:

[php]

function mailSend($to, $subject, $message, $attach, $from, $replyto) {
//定义边界线
$boundary = uniqid();
//生成邮件头
$header = "From: $from
Reply-to:$replyto
Content-type: multipart/mixed; boundary="$boundary"";
//获取附件文件的MIME类型
$mimeType = mime_content_type($attach);
//对附件文件进行编码和切分
$fp = fopen($attach, "r");
if ($fp) {
$content = fread($fp, filesize($attach));
$content = chunk_split(base64_encode($content));
fclose($fp);
}
else {
die("Failed to open file…");
}
//生成邮件主体
$body = "
–$boundary
Content-type: text/plain; charset=utf-8;
Content-transfer-encoding: 8bit
$message
–$boundary
Content-Type: $mimeType; name=$attach
Content-Disposition: attachment; filename=$attach
Content-Transfer-Encoding: base64
$content
–$boundary–";
//发送邮件
mail($to, $subject, $body, $header) or die("Failed to send mail…");
}

[/php]

更多PHP相关知识,请访问PHP中文网!

热心网友 时间:2022-04-29 13:04

<?php
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$address ="youbinliu@126.com";
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "smtp.qq.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "843831601@qq.com"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "***********"; // 邮局密码
$mail->Port=25;
$mail->From = "843831601@qq.com"; //邮件发送者email地址
$mail->FromName = "liuyoubin";
$mail->AddAddress("$address", "a");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");

//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式

$mail->Subject = "PHPMailer测试邮件"; //邮件标题
$mail->Body = "Hello,这是测试邮件"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略

if(!$mail->Send())
{
echo "邮件发送失败. <p>";
echo "错误原因: " . $mail->ErrorInfo;
exit;
}

echo "邮件发送成功";

/*************************************************

附件:
phpmailer 中文使用说明(简易版)
A开头:
$AltBody--属性
出自:PHPMailer::$AltBody
文件:class.phpmailer.php
说明:该属性的设置是在邮件正文不支持HTML的备用显示
AddAddress--方法
出自:PHPMailer::AddAddress(),文件:class.phpmailer.php
说明:增加收件人。参数1为收件人邮箱,参数2为收件人称呼。例 AddAddress("eb163@eb163.com","eb163"),但参数2可选,AddAddress(eb163@eb163.com)也是可以的。
函数原型:public function AddAddress($address, $name = '') {}
AddAttachment--方法
出自:PHPMailer::AddAttachment()
文件:class.phpmailer.php。
说明:增加附件。
参数:路径,名称,编码,类型。其中,路径为必选,其他为可选
函数原型:
AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream'){}
AddBCC--方法
出自:PHPMailer::AddBCC()
文件:class.phpmailer.php
说明:增加一个密送。抄送和密送的区别请看[SMTP发件中的密送和抄送的区别] 。
参数1为地址,参数2为名称。注意此方法只支持在win32下使用SMTP,不支持mail函数
函数原型:public function AddBCC($address, $name = ''){}
AddCC --方法
出自:PHPMailer::AddCC()
文件:class.phpmailer.php
说明:增加一个抄送。抄送和密送的区别请看[SMTP发件中的密送和抄送的区别] 。
参数1为地址,参数2为名称注意此方法只支持在win32下使用SMTP,不支持mail函数
函数原型:public function AddCC($address, $name = '') {}
AddCustomHeader--方法
出自:PHPMailer::AddCustomHeader()
文件:class.phpmailer.php
说明:增加一个自定义的E-mail头部。
参数为头部信息
函数原型:public function AddCustomHeader($custom_header){}
AddEmbeddedImage --方法
出自:PHPMailer::AddEmbeddedImage()
文件:class.phpmailer.php
说明:增加一个嵌入式图片
参数:路径,返回句柄[,名称,编码,类型]
函数原型:public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {}
提示:AddEmbeddedImage(PICTURE_PATH. "index_01.jpg ", "img_01 ", "index_01.jpg ");
在html中引用
AddReplyTo--方法
出自:PHPMailer:: AddRepl
*************************************************/
?>

参考资料:http://www.oschina.net/code/snippet_59519_2429

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 光纤收发器跟路由器排斥 光纤收发器,路由器,电话交换机 光纤收发器含路由器吗 光纤收发器是不是也属于路由器 路由 交换机 光端机 视频服务器 光纤收发器 各有什么功能有什么区别 光纤收发器可以当路由器用吗 光纤路由器和普通路由器有什么不一样吗? 百兆多模光纤收发器和路由器是不是一样的 有什么区别 哪个更好一点 百度网盘限速了怎么办 百度网盘10KB要几天解除? 百度网盘下载限速后过多久才能恢复正常? 百度网盘账号被限速,多长时间恢复 百度网盘的账号被限速什么时候才能恢复? 想买基金 请行内人士或有研究人士帮忙 微企有什么政策 理财通一天存一元钱可以吗? 新微配股票配资是哪家公司 什么是微定投? 泰康睿福3月持有混合不满1000怎么赎回 四川专升本院校有哪些? 女人问说啥怎么回复? 怎样和女生聊天,说些什么,怎样说?跪求! 说啥的造句怎么写呢? 跟女朋友聊天,该说些什么 网上和女生聊天,都应该说些什么呢? 忘记微邮付商户登录密码怎么办- 问一问 手机微邮付密码忘记了怎么办 微邮付下载密钥的时候一直显示旧密码错误是怎么回事? 华为微邮付密码忘记了怎么办? 四川剑南春属于哪种香型 白酒的香型分为多少种啊?茅台镇的酒都属于什么香型的? 茅台,剑南春,五粮液哪个酒好 听到过一个说法 :茅台为浓香型酒,五粮液为清香型酒 按白酒香型来分,有那几款香型的酒??? VIVE Focus可以看哔哩哔哔哩吗? 白酒的香型都有哪几种? 中国三大名酒是哪三种? 请问白酒都分哪几种类型?茅台、五粮液、泸州老窖、洋河、舍得、剑南春分别属于哪种类型? php利用mail发送邮件问题 叙府天曲42度1513多少钱一瓶