1. 使用mail()函数发送邮件
就是使用系统自带的smtp系统来发送,一般是使用sendmail来发。具体说明可以查看PHP函数手册。
以下是一个简单的示例:
<?php
mail("admin@4u4v.cn", "This is a Subject.", "This is the mail Body.");
?>
2. 使用qmail管道的形式发送邮件
在Linux中,使用本地的qmail来发送邮件。
/* 使用qmail发送邮件函数 */
function send_check_mail($email, $subject,$uid,$buffer)
{
echo "hello";
$command = "/var/qmail/bin/qmail-inject ".$email; //qmail程序地址,$email是要发送的地址
$handle = popen($command, "w"); //打开管道
if (!$handle) {
return false;
}
$from = "4u4v@163.com"; //发件人
fwrite($handle, "from: ".$from."\n"); //往管道写数据
fwrite($handle, "return-path: ".$from."\n");
fwrite($handle, "to: ".$uid."\n");
fwrite($handle, "subject: ".$subject."\n");
fwrite($handle, "mime-version: 1.0\n");
fwrite($handle, "content-type: text/html; charset="UTF-8"\n");
fwrite($handle, $buffer."\n");
pclose($handle); //关闭管道
return true;
}
//测试发送邮件
$subject = "测试邮件";
$uid = $_post['uid']; //from信息
$content= "<html><body>".$u_email
." 您好!<br><br>这是一个测试邮件。<br</body></html>"; //内容信息
$u_email = "admin@4u4v.cn"; //发送到的邮箱
if (send_check_mail($u_email, $subject, $uid, $content)) {
echo "恭喜!已发送邮件到您的邮箱!<br><br>请检查您的邮箱:<font color=#cc0033>".$u_email."
</font><br><br>". $close;
} else {
echo "很不幸,发送邮件到您的邮箱失败,请重试或者联系开发人员。<br><br>". $close;
}
3. 利用pear:Net_SMTP类发送邮件
在使用以下源代码前,请配置好pear的路径,并在http://pear.php.net下载Net_SMTP包
以下是一个具体实例:
require 'Net/SMTP.php'; //引入Net_SMTP包
$host = '163.com'; //smtp服务器的ip或域名
$username= '4u4v'; //登陆smtp服务器的用户名
$password= 'secret'; //登陆smtp服务器的密码
$from = '4u4v@163.com'; //谁发的邮件
$rcpt = array('35991353@qq.com', 'admin@163.com'); //可设多个接收者
$subj = "Subject: 测试邮件\n"; //主题
$body = "这是一个利用pear:Net_SMTP类发送的邮件。"; //邮件内容
/* 建立一个类 */
if (! ($smtp = new Net_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("无法设置发送者邮箱为 <$from>\n");
}
/* 设置接收邮件者 */
foreach ($rcpt as $to) {
if (PEAR::isError($res = $smtp->rcptTo($to))) {
die("邮件无法投递到 <$to>: " . $res->getMessage() . "\n");
}
}
/* 开始发送邮件内容 */
if (PEAR::isError($smtp->data($subj . "\r\n" . $body))) {
die("Unable to send data\n");
}
/* 断开连接 */
$smtp->disconnect();
echo "发送成功!";
5. 其他现实方法
比如使用socket,请自己写程式。
PEAR::Mail类跟上面的不相同,我没使过,读者朋友可以尝试一下。


评论