php使用gmail发送邮件,PHP使用gmail发邮件

实验室要举办一个会议,要我做一个会议的网站。使用了开源的openconf,十分省事。但发邮件简单的使用了PHP的mail函数,没有经过SMTP认证,发送的邮件很可能出现在对方的垃圾箱里,甚至会被退信。搜索了一下有很多PHP类库支持利用SMTP发送邮件,比如PHPMailer。

下面是利用PHPMailer实现的一个函数以及简单的测试代码。【注意,运行此函数需要openconf源代码根目录下的class.phpmailer.php和class.smtp.php】

请将“yourgmail@gmail.com”替换成你的gmail,写上对应密码。将“test@qq.com”改为要你要测试的邮箱。

//下面定义一个发送邮件的函数,已经测试通过。

//$sendto_email:邮件发送地址

//$subject:邮件主题

//$body:邮件正文内容

//$sendto_name邮件接受方的姓名,发送方起的名字。一般可省。

function stmp_mail($sendto_email, $subject = null, $body = null, $sendto_name = null) {

//vendor ( "PHPMailer.class#phpmailer" ); //导入函数包的类class.phpmailer.php

require_once("class.phpmailer.php");

$mail = new PHPMailer (); //新建一个邮件发送类对象

$mail->IsSMTP (); // send via SMTP

$mail->Port = 25; //发送端口

$mail->Host = "ssl://smtp.gmail.com:465"; // SMTP 邮件服务器地址,这里需要替换为发送邮件的邮箱所在的邮件服务器地址, 这里使用了gmail的SMTP设置

$mail->SMTPAuth = true; // turn on SMTP authentication 邮件服务器验证开

$mail->Username = "yourgmail@gmail.com"; // SMTP服务器上此邮箱的用户名,有的只需要@前面的部分,有的需要全名。请替换为正确的邮箱用户名

$mail->Password = "******"; // SMTP服务器上该邮箱的密码,请替换为正确的密码

$mail->From = "yourgmail@gmail.com"; // SMTP服务器上发送此邮件的邮箱,请替换为正确的邮箱,$mail->Username 的值是对应的。

$mail->FromName = "yourName"; // 真实发件人的姓名等信息,这里根据需要填写

$mail->CharSet = "utf-8"; // 这里指定字符集!

//$mail->Encoding = "base64";

$mail->AddAddress ( $sendto_email, $sendto_name ); // 收件人邮箱和姓名

//$mail->AddReplyTo('yourgmail@gmail.com',"管理员");//这一项根据需要而设

//$mail->WordWrap = 50; // set word wrap

//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 附件处理

//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");

//$mail->IsHTML ( true ); // send as HTML

$mail->Subject = $subject; // 邮件主题

// 邮件内容

/*

$mail->Body = "

$mail->AltBody = "text/html";

*/

$mail->Body = $body;

if (! $mail->Send ()) {

//邮件发送失败

return false;

} else {

//邮件发送成功

return true;

}

}

//function end

?>将上面代码存为gmail.php,编写下面的main.php

require_once "gmail.php";

echo "send mail begin";

echo "    ";

if(stmp_mail("your@qq.com","subject","body"))

echo "success";

else

echo "failed";

echo "    ";

echo "send mail end";

?>

使用浏览器访问mail.php测试。

______________UPDATED 2013.04.27___________________________________

下面市openconf需要做的更改:

将上述文件gmail.php放在opencof根目录

修改include.php

require_once "gmail.php";

替换函数oc_mail:

function oc_mail($to, $subject, $body, $hdr='', $enc='quoted-printable') {

global $OC_configAR;

$headers = (empty($hdr) ? $OC_configAR['OC_mailHeaders'] : $hdr);

$headers = "MIME-Version: 1.0\r\n" . $headers . "\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: " . $enc;

$headers = preg_replace("/\r/", "", $headers);

return (stmp_mail($to, $subject, $body));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值