大家好,感谢邀请,今天来为大家分享一下phpmailer的问题,以及和php邮件收发系统的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
一、如何使用php通过smtp发送邮件步骤
由于php没有提供现成的smtp函数,却提供了一个功能不甚灵活的mail()函数,这个函数需要服务器配置上的支持,并且不支持smtp验证,在很多场合无法正常的工作,因此不建议使用。
首先是使用telnet来连接本地的25端口,稍微熟悉点网络的人都知道smtp协议使用25端口,这也就是说,现在在连接本地的smtp服务器。
这些东西是系统输出信息,说明已经连接上了,而且这个smtp服务器是postfix做的。
“MAIL FROM:teste@dominio.com.br”这个命令指明了发件地址是teste@dominio.com.br,“250 Ok”说明这条命令被服务器接受并正确执行,这类似http协议的200、404、500等状态代码。接下来的“RCPT TO:teste@dominio.com.br”指明了收件地址是teste@dominio.com.br。
这一段是输入邮件正文,输入“DATA”以后系统提示使用“<回车>.<回车>”来结束输入,正文内容是“teste”。
以上就是最简单的一次发送mail的过程,从这个例子我们可以看出,发送mail其实是很简单的事情,实质上也就是建立一个对smtp服务器的连接,然后发送一些简单的命令给它,一封内容简单的邮件就发送出去了,至于更加复杂内容的邮件或者操作,其实也就是在此基础上稍加扩展而已。
把这个过程用php来实现,其实就是利用php的Socket functions、Network Functions等等操作socket的函数来和smtp服务器建立一个连接,然后发送文本的命令给服务器
require_once'Mail.php';
'host'=>'xx.xx.xx.xx',//smtp服务器地址,可以用ip地址或者域名
'auth'=>true,//true表示smtp服务器需要验证,false代码不需要
'username'=>'tester',//用户名
'password'=>'retset'//密码
*使用$headers数组,可以定义邮件头的内容,比如使用$headers['Reply-To']可以定义回复地址
*通过这种方式,可以很方便的定制待发送邮件的邮件头
$headers['From']='tester@domain.com';//发信地址
$headers['To']='tester@domain.com';//收信地址
$headers['Subject']='testmailsendbyphp';//邮件标题
$mail_object=&Mail::factory('smtp',$conf['mail']);
$body=<<<MSG//邮件正文
$mail_res=$mail_object->send($headers['To'],$headers,$body);//发送
if(Mail::isError($mail_res)){//检测错误
die($mail_res->getMessage());
二、php mail函数到底怎么配置
楼主用phpmailer吧,我用过,比较简单。下面是摘的一段phpmailer配置,试试看,有什么问题再提问。
第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/
第二,确认你的服务器系统已经支持socket
,通过phpinfo();查看是否支持sockets(socket是属于PHP扩展部分),如果显现为“enabled”,那就是支持了。
第三,把文件解压到你的web服务器目录下,调用类就可以了.
首先包含class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码:
require("phpmailer/class.phpmailer.php");
function smtp_mail($sendto_email,$subject,$body,$extra_hdrs,$user_name){
$mail->IsSMTP();// send via SMTP
$mail->Host="200.162.244.66";// SMTP servers
$mail->SMTPAuth= true;// turn on SMTP authentication
$mail->Username="yourmail";// SMTP username注意:普通邮件认证不需要加@域名
$mail->Password="mailPassword";// SMTP password
$mail->From="yourmail@yourdomain.com";//发件人邮箱
$mail->FromName="管理员";//发件人
$mail->CharSet="GB2312";//这里指定字符集!
$mail->AddAddress($sendto_email,"username");//收件人邮箱和姓名
$mail->AddReplyTo("yourmail@yourdomain.com","yourdomain.com");
//$mail->WordWrap= 50;// set word wrap换行字数
//$mail->AddAttachment("/var/tmp/file.tar.gz");// attachment附件
//$mail->AddAttachment("/tmp/image.jpg","new.jpg");
$mail->IsHTML(true);// send as HTML
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
$mail->AltBody="text/html";
echo"邮件错误信息:".$mail->ErrorInfo;
echo"$user_name邮件发送成功!<br/>";
//参数说明(发送到,邮件主题,邮件内容,附加信息,用户名)
smtp_mail("yourmail@yourdomain.com","欢迎使用phpmailer!","NULL","yourdomain.com","username");
这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8但在Outlook下显示乱码。
2.如果是发送html格式的邮件,那么记得也指定<meta... charset=GB2312">
3.如果你想用它来群发邮件的话,记得修改包含文件函数,如:
require("phpmailer/class.phpmailer.php");
require_once("phpmailer/class.phpmailer.php");
三、PHP发送Hotmail程序代码
可以使用PHPMailer轻松实现,下载地址:
http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/
require_once("./class.phpmailer.php");
$mail->Priority=3;#普通邮件
$mail->CharSet="gb2312";#字符编码
$mail->ContentType="text/plain";#邮件内容类型
$mail->From="it_leader@126.com";#发件人邮箱地址
$mail->FromName="it_leader";#发件人
$mail->Mailer="smtp";#使用SMTP发送邮件
$mail->Host="smtp.126.com";#SMTP主机地址
$mail->Port=25;#SMTP发送端口
$mail->Username="it_leader";#登录SMTP服务器的账户
$mail->Password="密码";#登录密码
$mail->SMTPAuth=true;#需要验证
$mail->Subject="测试PHPMailer";#邮件标题
$mail->MsgHTML("邮件内容");#设置HTML格式邮件内容
$mail->AddAddress("china9211314@hotmail.com","猪娃娃");#添加收件人
$mail->AddAddress("it_leader@qq.com","猪娃娃");#添加收件人
$mail->SMTPDebug=true;#调试模式
echo$mail->send()?"<fontcolor=green>邮件发送成功</font>":"<fontcolor=red>邮件发送失败</font>";
邮件是收到了但是被标记为垃圾邮件
四、如何用PHPMailer接收邮件
现以中文版Outlook Express 4.0为例进行设置:(一次设置长期可用) 1.单击窗口中的“工具/帐号”选项打开窗口; 2.在窗口中点击“邮件”标签; 3.单击“添加”按钮,选择“邮件”选项; 4.在输入姓名窗口中,输入您的用户名,单击“下一步”按钮; 5.输入您在中国工商报网邮件中申请的电子邮件地址,如:yourname@cicn.com.cn; 6.在“电子邮件服务器名”窗口中设置邮件服务器; 7.选择接收邮件服务器为“POP3”; 8.在接收服务器下输入中国工商报网邮件的POP3服务器名称:211.100.8.31 9.在发送邮件的服务器中,您可以输入本地的发件服务器,也可以输入中国工商报网邮件的发件服务器名称:211.100.8.31设置完成后,单击“下一步”按钮; 10.在登录窗口选择登录方式,输入POP帐号名,如邮箱是yourname@cicn.com.cn,帐号名(用户名)是yourname; 11.输入密码,密码一般为星号显示。如果您没有输入密码,系统会在接收邮件时会提示输入密码。单击“下一步”按钮; 12.输入Internet Mail帐号名(用户名),您可以采用系统默认名称,也可以修改; 13.单击“完成”按钮完成添加。您可以单击窗口中的“发送接收”进行收发邮件。
文章到此结束,如果本次分享的phpmailer和php邮件收发系统的问题解决了您的问题,那么我们由衷的感到高兴!