php发送注册邮件,邮件收到后变纯html文本了 本帖最后由 oWangPangZi 于 2014-07-06 16:24:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单独打印html文本,看看是否可以解析。 qq/hotmail/126都试了,接收到的都是纯HTML 给你一个发邮件函数吧<?phpfunction send_mail($to, $subject = 'No subject', $body) { $loc_host = "mail.server"; //发信计算机名,可随意 $smtp_acc = "[email protected]"; //发邮件邮箱 $smtp_pass="111"; //密码 $smtp_host="ssl.corp-email.com"; //邮件服务器 $from="[email protected]"; //发邮件邮箱 $deliver=$smtp_acc; $headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64"; $lb="\r\n"; $hdr = explode($lb,$headers); if($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));} $smtp = array( array("EHLO ".$loc_host.$lb,"220,250","HELO error: "), array("AUTH LOGIN".$lb,"334","AUTH error:"), array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "), array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : ")); $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: "); $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: "); $smtp[] = array("DATA".$lb,"354","DATA error: "); $smtp[] = array("From: ".$deliver.$lb,"",""); $smtp[] = array("To: ".$to.$lb,"",""); $smtp[] = array("Subject: ".$subject.$lb,"",""); foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");} $smtp[] = array($lb,"",""); if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}} $smtp[] = array(".".$lb,"250","DATA(end)error: "); $smtp[] = array("QUIT".$lb,"221","QUIT error: "); $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=""; 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;};?> 关于在网页中嵌入php脚本的问题 file_get_contents■截取html中所有包含@的内容(email地址) PHP 提取文件部分内容验证失败,求救!分数不够见谅 mysql的服务怎么删除 求一份PHP登陆页面源代码 php如何调用js方法 紧急请求帮助 为何我的上传无效?显示不出内容来 我遇到了ashchen (陈辉)(防止刷新重复提交的两种方法)所说的问题,代码如下 请问这样一个错误 ajax商品筛选功能如何进行判断 点下增加 添加一行 下一个页面如何收集数据?内详
<?phpfunction send_mail($to, $subject = 'No subject', $body) {
$loc_host = "mail.server"; //发信计算机名,可随意
$smtp_acc = "[email protected]"; //发邮件邮箱
$smtp_pass="111"; //密码
$smtp_host="ssl.corp-email.com"; //邮件服务器
$from="[email protected]"; //发邮件邮箱
$deliver=$smtp_acc;
$headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64";
$lb="\r\n";
$hdr = explode($lb,$headers);
if($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));} $smtp = array(
array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
array("AUTH LOGIN".$lb,"334","AUTH error:"),
array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
$smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
$smtp[] = array("DATA".$lb,"354","DATA error: ");
$smtp[] = array("From: ".$deliver.$lb,"","");
$smtp[] = array("To: ".$to.$lb,"","");
$smtp[] = array("Subject: ".$subject.$lb,"","");
foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
$smtp[] = array($lb,"","");
if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}
$smtp[] = array(".".$lb,"250","DATA(end)error: ");
$smtp[] = array("QUIT".$lb,"221","QUIT error: ");
$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="";
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;
};?>