【发布时间】:2014-03-05 23:43:52
【问题描述】:
我的网站上有一个表格,人们可以在其中加入活动。它背后的代码是这样工作的:
-
所有信息都保存在数据库中。这部分工作正常。
-
代码的第二部分向我和用户发送一封电子邮件,其中包含他输入的信息(与保存在数据库中的信息相同)
问题是这些电子邮件是通过托管帐户上的默认电子邮件未经身份验证发送的。我不得不修改脚本以强制使用我的主机帐户下的有效电子邮件进行 SMTP 身份验证以修复错误。现在脚本发出了电子邮件,但它以垃圾邮件过滤器结束所有 ISP,因此用户永远不会收到电子邮件。
我不知道该怎么做,或者创建代码以便脚本使用 SMTP 身份验证。以下是我的票价。有人可以帮我吗?
<?
// SEND OUT EMAIL PART
// COPY SEND TO MY SELF
$to = "my@email.com";
$from = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$headers = "From: $from";
$subject = "Thanks!";
$fields = array();
$fields{"name"} = "Name";
$fields{"address"} = "Address";
$fields{"phone"} = "Phone";
$fields{"email"} = "E-mail addesse";
$body = "INFO:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); }
// SEND TO THE USER
$headers2 = "From: my@email.com";
$subject2 = "THANKS!";
$fields2 = array();
$from = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$headers = "From: $from";
$subject = "Thanks!";
$body2 = "
TEXT TO EMAIL RECEIVER
\n\n"; foreach ($fields2 as $a => $b){ $body2 .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); }
// ERROR MESSAGES
if($from == '') {print "MISSING EMAIL ADDRESS.";}
else {
if($name == '') {print "MISSING NAME";}
else {
$send = mail($to, $subject, $body, $headers);
$send2 = mail($from, $subject2, $body2, $headers2);
if($send)
{header( "Location: http://mysite/send.php" );}
else
{print "MISSING EMAIL ADDRESS ALL FILDS MUST BE FILLED!"; }
}
}
?>
【问题讨论】: