phpmailer 使用

内部函数

mail函数

php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,所以使用mail函数往往无法成功发送email.

自己如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序,但对一般用户来说太困难.好在互联网上已经有很多别人编写好的邮件发送模块,我们只需要下载后简单调用即可,十分方便.

Mail配置选项

名称

默认

描述

可更改

SMTP

"localhost"

Windows 专用:SMTP 服务器的 DNS 名称或 IP 地址。

PHP_INI_ALL

smtp_port

"25"

Windows 专用:SMTP 端口号。自 PHP 4.3 起可用。

PHP_INI_ALL

sendmail_from

NULL

Windows 专用:规定从 PHP 发送的邮件中使用的 "from" 地址。

PHP_INI_ALL

sendmail_path

NULL

Unix 系统专用:路径(通常 /usr/sbin/sendmail 或 /usr/lib/sendmail)

PHP_INI_SYSTEM

邮件教程 

第一步:需要下载PHPMailer文件包(下载地址见扩展阅读)

第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets

如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项。

第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首先包含 class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码:

以下为引用的内容:

<?php

require("phpmailer/class.phpmailer.php");

function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {

$mail = new PHPMailer();

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

$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 = "你的邮件地址";

?>

发送示例代码 

下载该组件后,按如下示例编写代码即可实现php在线发送邮件.

一:前台表单

<html>

<body>

<h3>phpmailer Unit Test</h3>

请你输入<font color="#FF6666">收信</font>的邮箱地址:

<form name="phpmailer" action="send.php" method="post">

<input type="hidden" name="submitted" value="1"/>

邮箱地址: <input type="text" size="50" name="address" />

<br/>

<input type="submit" value="发送"/>

</form>

</body>

</html>

二:后台PHP程序

<?php

require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录

$mail = new PHPMailer(); //建立邮件发送类

$address = $_POST['address'];

$mail->IsSMTP(); // 使用SMTP方式发送

$mail->CharSet='UTF-8';// 设置邮件的字符编码

$mail->Host = "mail.xxxxx.***"; // 您的企业邮局域名

$mail->SMTPAuth = true; // 启用SMTP验证功能

$mail->Port = "***"; //SMTP端口

$mail->Username = ***@xxxx.***; // 邮局用户名(请填写完整的email地址)

$mail->Password = "******"; // 邮局密码

$mail->From = ***@xxxx.***; //邮件发送者email地址

$mail->FromName = "您的名称";

$mail->AddAddress("$address", "");//收件人地址,可以替换成任何想要接收邮件的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 "邮件发送成功";

?>

require("class.phpmailer.php");

$mail = new PHPMailer();

//通过数组方式存储邮件接收者

$address = array('aaaaaa','bbbbbb');

//使用SMTP方式发送邮件

$mail->IsSMTP();

//邮局服务器

$mail->Host = 'smtp.exmail.*';

//开启SMTP验证

$mail->SMTPAuth = true;

//邮局主机中的用户名

$mail->Username = 'admin';

//邮局密码

$mail->Password = '123456';

//邮局端口,SMTP默认25端口

$mail->Port=25;

//邮件发送者email地址

$mail->From = 'xxxxxxx';

//邮件来源(发件人)

$mail->FromName = 'PHPMailer群发Demo';

$len = count($address);

for ($i=0; $i < $len; $i++) {

$mail->AddAddress($address[$i]);

}

$mail->Subject = $title;//邮件标题

$mail->Body = $content;//邮件内容

$mail->Send();

 

注意:



1. 邮件的字符集设置, $mail->CharSet = "GB2312"; // 这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8但在Outlook下显示乱码。
2. 如果是发送html格式的邮件,那么记得也指定
3. 如果你想用它来群发邮件的话,记得修改包含文件函数,如:
require("phpmailer/class.phpmailer.php");
改为
require_once("phpmailer/class.phpmailer.php");
否则的话会产生类的重定义。

个人认为要使用phpmailer,首先,需要有一个邮件服务器,PHP的 mail函数没有指定,应该是使用的PHP设置的SMTP。

而在这里需要具体指定,同时需要指定邮件服务器的管理者和密码。

PHPMailer 也是一个功能强大的邮件类 

 

图片按列

phpmailer 使用

phpmailer 使用

phpmailer 使用

 

转载于:https://my.oschina.net/zqouba/blog/707888