这篇文章主要介绍了

1. 使用 mail() 函数

没什么好讲的,就是使用系统自带的smtp系统来发送,,一般是使用sendmail来发。这个按照各个系统不同而定。使用参考手册。

2. 使用管道的形式

昨天刚测试成功,使用本地的qmail来发送邮件。

复制代码 代码如下:


/* 使用qmail发送邮件函数 */
function send_check_mail($email, $subject,$uid,$buffer)
{
$command = "/var/qmail/bin/qmail-inject ".$email; //qmail程式地址,$email是要发送的地址
$handle = popen($command, "w"); //打开管道
if (!$handle) {
return false;
}

$from = "webmaster@unixsky.net"; //发件人
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=\"gb2312\"\n\n");
fwrite($handle, $buffer."\n");
pclose($handle); //关闭管道

return true;
}

------------------测试发送邮件:

//发送邮件

$subject = "测试邮件";

$uid = $_POST['uid']; //from信息
$content = ""; //内容信息

$u_email = "hren@yahoo.com.cn"; //发送到的邮箱
if (send_check_mail($u_email, $subject, $uid, $content)) {

echo "恭喜!发送投票邮件到你的邮箱!

请检查你的邮箱:".$u_email."

". $close;
} else {

echo "非常不幸,发送投票邮件到你的邮箱失败,请重试或联系研发人员。

". $close;

}

当然,也能使用相同的方法来处理sendmail的进程来发送邮件。

下面代码示例:

复制代码 代码如下:


fputs($pp, "To: sterling@designmultimedia.com\r\n");
fputs($pp, "Reply-to: $senders_email\r\n");
fputs($pp, "From: $senders_email\r\n");
fputs($pp, "Subject The Results of your form\r\n\r\n");
fputs($pp, "$senders_email sent the fllowing comments:\r\n");
fputs($pp, $comments);
pclose($pp) or die("Cannot close pipe to sendmail");
?>

其实这种管道的方法比较底层,取决于你所调用程式的稳定性。所以是一种可选的发送邮件的方式。


3. 使用

是个开源的发送邮件类,主站:

里面是两个文件,一个是class.smtp.另外加上官方网站的使用方法:
Examples using 1. Advanced ExampleThis demonstrates sending out multiple email messages with binary attachments from a MySQL database with multipart/alternative support.

复制代码 代码如下:


require("class.
$mail = new
$mail->From = "list@example.com";
$mail->FromName = "List manager";
$mail->Host = "smtp1.example.com;smtp2.example.com";
$mail->Mailer = "smtp";

@MYSQL_CONNECT("localhost","root","password");
@mysql_select_db("my_company");
$query?=?SELECT full_name, email,?hoto?ROM employee?HERE?d=$id";
$result??MYSQL_QUERY($query);

while ($row = mysql_fetch_array ($result))
{
// HTML body
$body = "Hello " . $row["full_name"] . ",

";
$body .= "Your personal photograph to this message.

";
$body .= "Sincerely,
";
$body .= "
// Plain text body (for mail clients that cannot read HTML)
$text_body = "Hello " . $row["full_name"] . ", \n\n";
$text_body .= "Your personal photograph to this message.\n\n";
$text_body .= "Sincerely, \n";
$text_body .= "
$mail->Body = $body;
$mail->AltBody = $text_body;
$mail->AddAddress($row["email"], $row["full_name"]);
$mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");

if(!$mail->Send())
echo "There has been a mail error sending to " . $row["email"] . "
";

// Clear all addresses and attachments for next loop
$mail->ClearAddresses();
$mail->ClearAttachments();
}

2. Extending

Here's a class that extends the

复制代码 代码如下:


require("class.

复制代码 代码如下:

09-15 07:35