怎么在php中使用pear_smtp实现一个邮件发送功能
发布时间:-12-22 16:24:35
来源:亿速云
阅读:76
作者:Leah
怎么在php中使用pear_smtp实现一个邮件发送功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
PHP自带的mail函数比较蛋疼,在win下配置了sendmail还是无法发送邮件。而使用第三方的pear/mail可以直接通过smtp连接邮件发送服务器。如()。从而没有必要在本机上安装sendmail等类似软件。
确保PEAR Mail包已经安装。<?php
require_once"vendor/autoload.php";
$from="test";
$to="test";
$subject="Hi!";
$body="Hi,\n\nHowareyou?";
$host="";
$port="25";
$username="test@";
$password="test123";
$headers=array('From'=>$from,
'To'=>$to,
'Subject'=>$subject);
$smtp=Mail::factory('smtp',
array('host'=>$host,
'port'=>$port,
'auth'=>true,
//'debug'=>true,
'username'=>$username,
'password'=>$password));
$mail=$smtp->send($to,$headers,$body);
if(PEAR::isError($mail)){
echo("
".$mail->getMessage()."
");
}else{
echo("
Messagesuccessfullysent!
");
}
?>
这是非加密方式。
PHPer 多数使用 mail 函数来发送邮件,但我们可以使用其他的 SMTP 服务器来发送,这里推荐使用 PEAR's mail package 来发送邮件。$subject="ThismailissentfromSMTP.";
$mail_body="ThisisthebodyofthemailwhichissentusingSMTP.";
$from="From:FromName";
$to="To:ToName";
$receiver="toaddress@";
//Settinguptheheaders
$headers["From"]=$from;
$headers["To"]=$to;
$headers["Subject"]=$subject;
$headers["Reply-To"]="reply@";
$headers["Content-Type"]="text/plain;charset=ISO--JP";
$headers["Return-path"]="returnpath@";
//SettinguptheSMTPsetting
$smtp_info["host"]="";
$smtp_info["port"]="25";
$smtp_info["auth"]=true;
$smtp_info["username"]="smtp_user";
$smtp_info["password"]="smtp_password";
//CreatingthePEARmailobject:
$mail_obj=&Mail::factory("smtp",$smtp_info);
//Sendingthemailnow
$mail_sent=$mail_obj->send($receiver,$headers,$mail_body);
//Ifanyerrortheseeforthathere:
if(PEAR::isError($mail_sent)){print($mail_sent->getMessage());}
第三个案例:
在使用以下源代码前,请配置好pear的路径,下载net_smtp包
在php.ini文件中根据你的操作系统选择不同的设置方法;UNIX:"/path2:/path3"
include_path=".:./php/pear"
;
;Windows:"\path2;\path3"
;include_path=".;c:\php\pear"
require'Net/SMTP.php';
$host='';//smtp服务器的ip或域名
$username='arcow';//登陆smtp服务器的用户名
$password='secret';//登陆smtp服务器的密码
$from='arcow@';//谁发的邮件
$rcpt=array('test@','arcow@');//可设多个接收者
$subj="Subject:你是谁\n";//主题
$body="testit";//邮件内容
/*建立一个类*/
if(!($smtp=newNet_SMTP($host))){
die("无法初始化类Net_SMTP!\n");
}
/*开始连接SMTP服务器*/
if(PEAR::isError($e=$smtp->connect())){
die($e->getMessage()."\n");
}
/*smtp需要身份验证*/
$smtp->auth($username,$password,"PLAIN");
/*设置发送者邮箱*/
if(PEAR::isError($smtp->mailFrom($from))){
die("无法设置发送者邮箱为\n");
}
/*设置接收邮件者*/
foreach($rcptas$to){
if(PEAR::isError($res=$smtp->rcptTo($to))){
die("邮件无法投递到:".$res->getMessage()."\n");
}
}
/*开始发送邮件内容*/
if(PEAR::isError($smtp->data($subj."\r\n".$body))){
die("Unabletosenddata\n");
}
/*断开连接*/
$smtp->disconnect();
echo"发送成功!";
?>
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。