phpmailer(php邮件收发系统)

admin 496 0

大家好,感谢邀请,今天来为大家分享一下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邮件收发系统的问题解决了您的问题,那么我们由衷的感到高兴!