- A+
所属分类:PHP学习
PHPMailer是别人封装好的一个发送邮件的库,用起来很方便。其支持mail、sendmail和smtp的方式可以到https://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list去下载最新版本的。下面通过gmail smtp发送邮件为例来说明smtp使用方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
function sendMail($subject, $body, $to, $ccs = array()) { require_once './class.phpmailer.php'; $mail = new PHPMailer(); //设定邮件编码,默认ISO-8859-1,也可以直接去源代码中修改 $mail->CharSet = 'UTF-8'; // 使用smtp的方式发送 $mail->IsSMTP(); //smtp服务器需要认证 $mail->SMTPAuth = TRUE; //安全协议 gmail 是采用ssl的 $mail->SMTPSecure = "ssl"; //smtp服务器 $mail->Host = 'smtp.gmail.com'; //smtp服务器端口,普通是25 $mail->Port = 465; //smtp 认证用户名和密码 $mail->Username = 'yourgmailaccount@gmail.com'; $mail->Password = "yourpassword"; //发件人地址和名字,名字可以省略 $mail->SetFrom('yourgmailaccount@gmail.com', 'display name'); // 邮件标题 $mail->Subject = $subject; // 邮件内容,支持HTML格式 $mail->MsgHTML($body); // 收件人地址 $mail->AddAddress($to); // 抄送人 foreach ($ccs as $cc) { $mail->AddCC($cc); } if(!$mail->Send()) { echo "error info:" . $mail->ErrorInfo; } } |
按如下示例编写代码即可实现php在线发送邮件.上面是核心代码,下面我们综合一下实例。
一:前台表单
1 2 3 4 5 6 7 8 9 10 11 12 |
<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程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录 $mail = new PHPMailer(); //建立邮件发送类 $address = $_POST['address']; $mail->IsSMTP(); // 使用SMTP方式发送 $mail->Host = "mail.xxxxx.com"; // 您的企业邮局域名 $mail->SMTPAuth = true; // 启用SMTP验证功能 $mail->Username = "user@xxxx.com"; // 邮局用户名(请填写完整的email地址) $mail->Password = "******"; // 邮局密码 $mail->From = "user@xxxx.com"; //邮件发送者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 "邮件发送成功"; ?> |