awingstar
新手上路

UID 75161
精华
0
积分 24
帖子 10
金钱 24 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-6-18
状态 离线
|
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
PHP邮件发送问题,非常感谢热心的你帮助我!
我这里有个电子商务程序,之前放在新网的虚拟主机上(unix的),注册的时候可以正常的收到通知信,现在我放置在我自己的服务器上(IIS),已经正确的架设了smtp,并且确保可用,但程序却不能自动的发送邮件,检查smtp纪录似乎程序对他没有动作,我不了解是怎么回事,希望大家帮忙!
==============================================
在程序的后台,有两个发送邮件方式的选择,分别是Print_mail和Send_mail
下面我引用一下程序的部分代码,应该能够说明问题的:
在发送邮件的php文件里面的“include "func.php";”
其func.php里面和发送邮件相关的代码如下:
------------------------------------------------------------------------------
function basic_sendmail($to_email,$from_email,$form_name,$subject,$morningbody,$type) {
$header .= "From: $form_name <$from_email>\n";
//$header .= "X-Sender: <$from_email>\n";
//$header .= "X-Mailer: PHP ".htmlversion()."\n";
$header .= "X-Priority: 1\n";
//$header .= "Return-Path: <$from_email>\n";
$header .= "Content-Type: text/$type;";
$header .= "charset=GB2312\n";
$morningbody = stripslashes($morningbody);
//echo "$to_email<br><br>$subject<br><br>$morningbody<br><br>$header";
//exit;
@mail($to_email,$subject,$morningbody,$header);
}
function nmail($to_email, $from_email, $from_name, $subject, $morningbody, $type) {
$header = "From: $from_name <$from_email>\n";
//$header .= "X-Sender: <$from_email>\n";
//$header .= "X-Mailer: PHP ".htmlversion()."\n";
$header .= "X-Priority: 1\n";
//$header .= "Return-Path: <$from_email>\n";
$header .= "Content-Type: text/$type; charset=GB2312\n";
$header .= "\n\n";
$morningbody = stripslashes($morningbody);
@$fp = popen('/usr/sbin/sendmail -t -f '.$from_email.' '.$to_email,"w");
if(!$fp) return 0;
fputs($fp,"From:".$from_name."<".$from_email.">"."\n");
//fputs($fp, "To: $to_email\n");
fputs($fp, "Subject: ".$subject."\n");
fputs($fp, $header."\n");
fputs($fp, $morningbody);
fputs($fp, "\n\n\n");
pclose($fp);
return 1;
}
------------------------------------------------------------------------------------
在发送邮件有关的php文件内,是这样调用的(发送的是一些表单提交的变量):
if($ps_mode == "send_mail" and $mailer_receive_email and $mailer_subject and $mailer_body) {
if($mailer_html != "1") { $mailer_body = make_br($mailer_body); }
if(is_dir("$g_mall_skin_dir/$cf_skin_name")) { include "$g_mall_skin_dir/$cf_skin_name/mall_mail_skin.html";
} else { include "$g_mall_skin_dir/default/mall_mail_skin.html"; }
$mail_subject = $mailer_subject;
$mail_content = $g_mail_header.$g_mail_form.$g_mail_bottom ;
if($cf_mail_method == "1") {
basic_sendmail($mailer_receive_email,$mailer_send_email,$mailer_send_name,$mail_subject,$mail_content,html);
} elseif($cf_mail_method == "2") {
nmail($mailer_receive_email,$mailer_send_email,$mailer_send_name,$mail_subject,$mail_content,html);
} else {
basic_sendmail($mailer_receive_email,$mailer_send_email,$mailer_send_name,$mail_subject,$mail_content,html);
}
error_msg("$lang_mall_send_mailer","close");
exit;
}
error_msg("$lang_mall_avess","close");
exit;
===================================
今天在搜索引擎看了一天,似乎知道php的邮件发送要配合apache服务器工作,在IIS下面要通过其他方法实现,我尝试了一些类的调用,通过localhost的smtp发送,但是没有能够成功,似乎程序对smtp没有任何动作,请问我要如何修改程序让它正常工作呢?希望有经验的前辈指教,小弟在此谢过!
|
|