三种php发送邮件实例程序
我们利用了三种php发送邮件实例程序哦,下面一个个来实例各种发送的发送邮件哦。
<?php
if(send_mail('test@qq.com','邮件主题','邮件内容')==""){
echo "发送成功!<br>";
} else{
echo "发送失败!<br>";
}
<?php
$to = "test@test.com";
$subject = "Test Subject";
$message = "This is the test email.";
$from = "youremail@yourdomain.com";
$headers = "From: $from";
mail($to, $subject, $message, $headers);
?>
<?php
function send_mail($to, $subject = 'No subject', $body) {
$loc_host = "im286"; //发信计算机名,可随意
$smtp_acc = "test@126.com"; //Smtp认证的用户名
$smtp_pass = "******"; //Smtp认证的密码,一般等同pop3密码
$smtp_host = "smtp.126.com"; //SMTP服务器地址,类似 smtp.tom.com
$from = "test@126.com"; //发信人Email地址,你的发信信箱地址
$headers = "Content-Type: text/plain; charset=\"utf-8\" Content-Transfer-Encoding: base64";
$lb = " "; //linebreak
$hdr = explode($lb, $headers); //解析后的hdr
if ($body) {
$bdy = preg_replace("/^./", "..", explode($lb, $body));
} //解析后的Body
$smtp = array(
//1、EHLO,期待返回220或者250
array(
"EHLO " . $loc_host . $lb,
"220,250",
"HELO error: "
) ,
//2、发送Auth Login,期待返回334
array(
"AUTH LOGIN" . $lb,
"334",
"AUTH error:"
) ,
//3、发送经过Base64编码的用户名,期待返回334
array(
base64_encode($smtp_acc) . $lb,
"334",
"AUTHENTIFICATION error : "
) ,
//4、发送经过Base64编码的密码,期待返回235
array(
base64_encode($smtp_pass) . $lb,
"235",
"AUTHENTIFICATION error : "
)
);
//5、发送Mail From,期待返回250
$smtp[] = array(
"MAIL FROM: <" . $from . ">" . $lb,
"250",
"MAIL FROM error: "
);
//6、发送Rcpt To。期待返回250
$smtp[] = array(
"RCPT TO: <" . $to . ">" . $lb,
"250",
"RCPT TO error: "
);
//7、发送DATA,期待返回354
$smtp[] = array(
"DATA" . $lb,
"354",
"DATA error: "
);
//8.0、发送From
$smtp[] = array(
"From: " . $from . $lb,
"",
""
);
//8.2、发送To
$smtp[] = array(
"To: " . $to . $lb,
"",
""
);
//8.1、发送标题
$smtp[] = array(
"Subject: " . $subject . $lb,
"",
""
);
//8.3、发送其他Header内容
foreach ($hdr as $h) {
$smtp[] = array(
$h . $lb,
"",
""
);
}
//8.4、发送一个空行,结束Header发送
$smtp[] = array(
$lb,
"",
""
);
//8.5、发送信件主体
if ($bdy) {
foreach ($bdy as $b) {
$smtp[] = array(
base64_encode($b . $lb) . $lb,
"",
""
);
}
}
//9、发送“.”表示信件结束,期待返回250
$smtp[] = array(
"." . $lb,
"250",
"DATA(end)error: "
);
//10、发送Quit,退出,期待返回221
$smtp[] = array(
"QUIT" . $lb,
"221",
"QUIT error: "
);
//打开smtp服务器端口
$fp = @fsockopen($smtp_host, 25);
if (!$fp) echo "<b>Error:</b> Cannot conect to " . $smtp_host . "<br>";
while ($result = @fgets($fp, 1024)) {
if (substr($result, 3, 1) == " ") {
break;
}
}
$result_str = "";
//发送smtp数组中的命令/数据
foreach ($smtp as $req) {
//发送信息
@fputs($fp, $req[0]);
//如果需要接收服务器返回信息,则
if ($req[1]) {
//接收信息
while ($result = @fgets($fp, 1024)) {
if (substr($result, 3, 1) == " ") {
break;
}
};
if (!strstr($req[1], substr($result, 0, 3))) {
$result_str.= $req[2] . $result . "<br>";
}
}
}
//关闭连接
@fclose($fp);
return $result_str;
}文章地址:http://www.phprm.com/code/07959db4c35c499d86b72a35f35bad76.html
转载随意^^请带上本文地址!