❶ 谁能写一个用php发送邮件的类,同时能介绍以下PHP发送邮件的原理吗
<?php
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$address ="[email protected]";
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "smtp.qq.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "[email protected]"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "***********"; // 邮局密码
$mail->Port=25;
$mail->From = "[email protected]"; //邮件发送者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("[email protected]","eb163"),但参数2可选,AddAddress([email protected])也是可以的。
函数原型: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
*************************************************/
?>
❷ 怎么利用php发送邮件求详细教程
PHP虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,接下来将详细介绍,需要了解的朋友可以参考下:
本人使用wamp集成开发环境,Apache2.4.4, Mysql5.6.12 , php5.4.12.开始的时候使用mail()发送邮件,更改配置始终无法成功,了解到mail()函数使用需要sendmail程序。又下载了sendmail程序扩展包。按照网上的说法也改好了php.ini和sendmail.ini。使用foxmail 7.1创建了自己的qq邮箱账户,开启了POP3/SMTP服务,更改发件服务器为POP3,使用和收件服务器相同的身份验证,结果还是报错:Warning: mail(): SMTP server response: 503 Error: need EHLO and AUTH first ! in F:\PHP\wamp\www\mail.php on line 8。以下是使用mail()函数发送邮件的php代码:
[php] view plain
<span style="font-size:14px"><?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From: $from";
$send=mail($to,$subject,$message,$headers);
if($send)
echo "Mail Sent";
else
echo "Sorry,mail sent failed!"
?></span>
在CSDN论坛上发现phpmailer可以方便快捷的发送邮件,以下写出详细使用教程:
1.需要下载PHPMailer文件包,(点击打开链接)
2.确认你的服务器已经系统支持socket,通过phpinfo()查看是否支持socket;
3.把文件解压到你的WEB服务器目录下,就可以使用PHPMailer发送邮件了。
以下为前台表单php代码:
[php] view plain
<span style="font-size:14px"><html>
<body>
<h3>phpmailer Unit Test</h3>
请你输入<font color="#FF6666">收信</font>的邮箱地址:
<form name="phpmailer" action="testemail.php" method="post">
<input type="hidden" name="submitted" value="1"/>
邮箱地址: <input type="text" size="50" name="to" />
<br/>
<input type="submit" value="发送"/>
</form>
</body>
</html> </span>
以下为后台程序:
[php] view plain
<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require('class.phpmailer.php');
try {
$mail = new PHPMailer(true); //New instance, with exceptions enabled
//$body = file_get_contents('contents.html');
//$body = preg_replace('/\\\\/','', $body); //Strip backslashes
$to = $_POST['to'];
$mail->CharSet="GB2312";//设置邮件字符编码否则邮件会乱码
$mail->Encoding="base64";
$mail->IsSMTP(); // tell the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 25; // set the SMTP server port
$mail->Host = "smtp.qq.com"; // SMTP server
$mail->Username = "[email protected]"; // SMTP server username
$mail->Password = "000000000000"; // SMTP server password
//$mail->IsSendmail(); // tell the class to use Sendmail
$mail->AddReplyTo("[email protected]","han qing");
$mail->From = "[email protected]";
$mail->FromName = "han qing";
//$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject =$mail->Subject = "=?utf-8?B?" . base64_encode("First PHPMailer Message") . "?=";
$mail->Body = "<h1>phpmailer演示</h1> 这是用PHPMAILER发的第一份邮件,从QQ邮箱发到Google邮箱.";
$mail->AddAttachment("F:/myloe.jpg");
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap = 80; // set word wrap
//$mail->MsgHTML($body);
$mail->IsHTML(true); // send as HTML
$mail->Send();
echo 'Message has been sent.';
} catch (phpmailerException $e) {
echo $e->errorMessage();
}
?>
❸ 请问一下,PHP配置SMTP怎么弄
PHPMailer的获取:
PHPMailer项目地址:PHPMailer 使用git命令克隆到本地,或直接在该项目页面的右下方点击“ Download ZIP ”即可获取到完整的PHPMailer代码包,再到本地解压即可。
步骤一:使我们的QQ邮箱能够发送邮件
这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一个第三方客户端存在的。
这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一个第三方客户端存在的
由于待会我们用到的是SMTP服务器来发送,在这里建议把前面的两项开启了!当你点击开启的时候,它会提示:
<?phprequire_once("./functions.php");$flag=sendMail('[email protected]','lsgo在线通知','恭喜你成功加入LSGO实验室,开启你的学习之旅吧!');if($flag){echo"发送邮件成功!";
}else{echo"发送邮件失败!";
}?>
❹ 如何使用php通过smtp发送邮件步骤
由于php没有提供现成的smtp函数,却提供了一个功能不甚灵活的mail()函数,这个函数需要服务器配置上的支持,并且不支持smtp验证,在很多场合无法正常的工作,因此不建议使用。
首先是使用telnet来连接本地的25端口,稍微熟悉点网络的人都知道smtp协议使用25端口,这也就是说,现在在连接本地的smtp服务器。
<?php
require_once'Mail.php';
$conf['mail']=array(
'host'=>'xx.xx.xx.xx',//smtp服务器地址,可以用ip地址或者域名
'auth'=>true,//true表示smtp服务器需要验证,false代码不需要
'username'=>'tester',//用户名
'password'=>'retset'//密码
);
/***
*使用$headers数组,可以定义邮件头的内容,比如使用$headers['Reply-To']可以定义回复地址
*通过这种方式,可以很方便的定制待发送邮件的邮件头
***/
$headers['From']='[email protected]';//发信地址
$headers['To']='[email protected]';//收信地址
$headers['Subject']='testmailsendbyphp';//邮件标题
$mail_object=&Mail::factory('smtp',$conf['mail']);
$body=<<<MSG//邮件正文
helloworld!!!
MSG;
$mail_res=$mail_object->send($headers['To'],$headers,$body);//发送
if(Mail::isError($mail_res)){//检测错误
die($mail_res->getMessage());
}
?>
❺ 如何在PHP中使用PHPMailer发送邮件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require 'class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
$mail->SMTPAuth = true; //开启认证
$mail->Port = 25;
$mail->Host = "smtp.163.com";
$mail->Username = "[email protected]";
$mail->Password = "这是密码";
//$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示
$mail->AddReplyTo("[email protected]","mckee");//回复地址
$mail->From = "[email protected]";
$mail->FromName = "www.phpddt.com";
$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject = "phpmailer测试标题";
$mail->Body = "<h1>phpmail演示</h1>这是php点点通(<font color=red>www.phpddt.com</font>)对phpmailer的测试内容";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
$mail->WordWrap = 80; // 设置每行字符串的长度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
echo '邮件已发送';
} catch (phpmailerException $e) {
echo "邮件发送失败:".$e->errorMessage();
}
?>
❻ PHPMailer.class.php这个类 以前在本机上可以发送邮件的,过一段时间了现在发送会出现报错
SMTP认证失败,也就是说你的SMTP需要认证且你提供的登录SMTP服务器的用户或密码错误
❼ 急急急 phpmailer邮件内容出现乱码 标题正常 (class.phpmailer.php) 编码改过了 还是乱码求解
$mail->CharSet = "GB2312"; 换成这个试试下
❽ php发送邮件的问题:php怎么才能发送邮件呢使用自带的函数,应该怎样设置相应的邮件服务器
首先,我不想给phpmailer这个东西做广告,但是我确实使用的这个东西,很费解。
下载一个phpmailer类,里面主要的是三个文件class.phpmailer.phpclass.pop3.phpclass.smtp.php
将这三个文件放到同一个文件夹.eg:papmailer
申请一个网络邮件服务器(我用的是163服务器)
编写发送邮件代码如下
/**
*发送邮件
*@paramunknown_type$sendto_email接收人Email
*@paramunknown_type$subject邮件主题
*@paramunknown_type$body邮件内容
*@paramunknown_type$user_name接受人姓名
*/
functionsend_email($sendto_email,$subject,$body,$user_name){
require_once"phpmailer/class.phpmailer.php";
$mail=newPHPMailer();//创建类对象
$mail->IsSMTP();
$mail->Host="smtp.163.com";//SMTPservers使用163服务器,邮件smtp服务器
$mail->SMTPAuth=true;//turnonSMTPauthentication
$mail->Username="你申请的163邮箱帐号";//SMTPusername注意:普通邮件认证不需要加@域名
$mail->Password="163邮箱密码";//SMTPpassword
$mail->From="发件人邮箱,可以使用上面163邮箱";//发件人邮箱
$mail->FromName="发件人名称,自己随意命名";//发件人
$mail->CharSet="utf8";//这里指定字符集!
$mail->Encoding="base64";
$mail->AddAddress($sendto_email,$user_name);//收件人邮箱和姓名
$mail->IsHTML(true);//sendasHTML
//邮件主题
$mail->Subject=$subject;
//邮件内容
$mail->Body=$body;
$mail->AltBody="text/html";
if(!$mail->Send()){
return$mail->ErrorInfo;
}else{
returntrue;
}
}
❾ 如何用php结合phpmailer发送邮件
<?php
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require'php_mail/class.phpmailer.php';
require'php_mail/class.smtp.php';
functionsend_mail($to,$fromname,$title,$content){
try{
$mail=newPHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8';//设置邮件的字符编码,这很重要,不然中文乱码
$mail->SMTPAuth=true;//开启认证
$mail->Port=25;//端口请保持默认
$mail->Host="smtp.163.com";//使用QQ邮箱发送
$mail->Username="[email protected]";//这个可以替换成自己的邮箱
$mail->Password="xxxxxxxxxxxxxxx";//注意这里是写smtp的授权码写的不是QQ密码,此授权码不可用
//$mail->IsSendmail();//如果没有sendmail组件就注释掉,否则出现“Couldnotexecute:/var/qmail/bin/sendmail”的错误提示
$mail->AddReplyTo("[email protected]","mckee");//回复地址
$mail->From="[email protected]";
$mail->FromName=$fromname;
$to=$to;
$mail->AddAddress($to);
$mail->Subject=$title;
$mail->Body=$content;
$mail->AltBody="Toviewthemessage,!";//当邮件不支持html时备用显示,可以省略
$mail->WordWrap=80;//设置每行字符串的长度
//$mail->AddAttachment("f:/test.png");//可以添加附件
$mail->IsHTML(true);
$mail->Send();
//echo'邮件已发送';
}catch(phpmailerException$e){
//echo"邮件发送失败:".$e->errorMessage();
}
returntrue;
}
$neirong="联系电话:".$_POST['phone']."<br/>".$_POST['content']."<hr><pstyle='float:right;'>邮件来自官网</p>";
send_mail('[email protected]',$_POST['fromname'],'来信了ヾ(≧O≦)〃嗷~',$neirong);
//send_mail('[email protected]',$_POST['fromname'],'可爱的保氧家官网来信了ヾ(≧O≦)〃嗷~',$neirong);
//环境PHP5.3亲测可用
?>
下载邮件类,结合这个就可以了
❿ 网站哪个文件绑定邮箱和短信
希望能够在描述更清楚些,一般网站后台就可以绑定邮箱和短信,不需要再服务器文件里搞
控制面板 -> 程序 -> 打开或关闭Windows功能,这时我们会看到下面的弹出框
然后点击确定即可,等待几分钟即安装完成。
在我们下载的PHP配置文件中Mail已经配置好了,所以这里不需要进行额外的配置,下面我们用代码测试下效果,这里我是使用的class.phpmailer.php,因为php自带的mail函数基本上是没有这样的服务器供使用,大部门服务器都需要进行身份的验证,class.phpmailer.php网上有下载,下载包里面还包含class.phpmailer.php、class.smtp.php和class.pop3.php,这里看你需要用哪种协议,class.phpmailer.php加上一个协议php放在你的PHP目录下,即可进行发送邮件测试了,这里我以smtp协议进行说明。
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->CharSet = "utf-8";
$mail->IsSMTP(); // 经smtp发送
$mail->Host = "smtp.163.com"; // SMTP服务器
$mail->Port= 25;
//$mail->SMTPAuth = true; // 打开SMTP 认证 这两项是服务器而定,在我的测试中因为服务器没有这两项而失败,去掉后就成功了
//$mail->SMTPSecure ='ssl';
$mail->Username = "username"; // 用户名,一般是@前的部分
$mail->Password = "password"; // 密码
$mail->From = "@163.com"; // 发信人
$mail->FromName = "XX"; // 发信人别名
$mail->AddAddress($tomail); // 收信人
$mail->WordWrap = 30;
$mail->IsHTML(true); // 以html方式发送
$mail->Subject = $subject; // 邮件标题
$mail->Body = $body; // 邮件内容
return $mail->Send();