[PHP]发送邮件方法介绍和代码示例

有很多朋友都遇到发送邮件的需求,他们先从网上下载一段代码,然后填好主题和内容,却发现怎么也发送失败,这里首先要弄清楚一点,发送邮件必须有邮件服务器完成,比如SMTP,POP3等邮件服务器,只运行代码就想发送邮件,相当于空中楼阁,无米之炊。对一个企业、个人来说,想要自己写代码发送邮件,必须先有自己的邮局账户,这样我们就能得到这些信息:

1、邮局服务器的IP;

2、邮局账户用户名;

3、对应2的账户密码。

有了这三项,在代码里设定之后,代码才能连接目标服务器,然后用此服务器来进行邮件的发送。

其中加色部分最终是由PHP服务器(比如Apache)和邮局服务器(比如SMPT)共同完成的。

以下提供一个代码,实现了邮件发送,注意send.php里面发送服务器、用户名和密码的配置:

form.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>

 

send.php//接收参数,发送邮件,特别注意颜色部分的配置

<?php
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$address = $_POST['address'];
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "11.11.11.11"; // 企业邮局的IP地址或者域名
$mail->SMTPAuth = true; // 启用SMTP验证功能 $mail->Username = "xx@crazyant.net"; // 邮局用户名(请填写完整的email地址) $mail->Password = "88558855"; // 邮局密码

$mail->From = "xx@crazyant.net"; //邮件发送者email地址
$mail->FromName = "crazyant";
$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 = "<table border='1'><tr><td>用户名</td><td>密码</td></tr><td>1122121</td><td>3322323</td></tr></table>"; //邮件内容
$mail->AltBody = "A=B<h1>C=D</h1>"; //附加信息,可以省略

if(!$mail->Send()){
 echo "邮件发送失败. <p>";
 echo "错误原因: " . $mail->ErrorInfo;
 exit;
}

echo "邮件发送成功";
?>

 

send.php用到了一个PHPmail类,请到http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list进行下载

本教程PDF说明以及代码示例放在:http://www.kuaipan.cn/index.php?ac=file&oid=20099656671300541
下载密码: 2D6quK

相关推荐

7 thoughts on “[PHP]发送邮件方法介绍和代码示例”

  1. 最新发现用QQ号也可以发成功的,把邮箱地址设置成smtp.qq.com,然后把账号和密码分别写成自己的QQ邮箱和QQ邮箱的密码,也能成功。由此推断,126、163、GMAIL,都可以填在这个地方,都能发送成功的。

    回复
  2. 有免费使用的SMTP服务器哦
    // 使用SMTP方式发送
    $mail->Host = "smtp.sina.com.cn";
    // 企业邮局的IP地址或者域名
    $mail->SMTPAuth = true;
    // 启用SMTP验证功能
    $mail->Username = "XXX@sina.com"; // 邮箱用户名(请填写完整的email地址)
    $mail->Password = "XXXX"; // 邮箱密码

    $mail->From = "XXX@sina.com";

    邮箱 对应的免费SMTP服务器
    01 @163.com smtp.163.com
    02 @126.com smtp.126.com
    03 Sina免费邮件 smtp.sina.com.cn
    04 Gmail smtp.gmail.com (SSL)
    05 @sohu.com smtp.sohu.com
    06 21cn邮箱 smtp.21cn.com
    07 Yahoo中国免费邮件smtp.mail.yahoo.com.cn
    smtp.yahoo.cn
    08 @hotmail.com/@msn.com 不支持SMTP
    09 @qq.com smtp.qq.com,需要到邮箱里先设置开通
    10 263电子邮局 smtp.263.net

    回复

Leave a Comment