【发布时间】:2011-11-29 00:18:18
【问题描述】:
我有一个 php 函数可以很好地发送电子邮件,但我希望它使用我在 ini.set 函数中指定的 smtp 服务器。
如果我删除这 3 行代码,电子邮件仍然可以正常发送。
我想使用 smtp 服务器的原因是因为有时这对某些邮件主机不起作用。
connect();
$username = mysql_real_escape_string($_POST['username']);
$result = mysql_query("SELECT email FROM members WHERE username = '$_POST[username]'")
or die ("Error - Something went wrong.");
$row = mysql_fetch_array($result);
$useremail = $row['email'];
$name = "name";
$mail_from = "noreply@name.com";
$mail_to = "$useremail";
$mail_body = "Hello. Thank you for registering. Please click the link below to confirm your email address. ";
$mail_subject = "Confirm you registration".$name;
$mail_header = "From: ".$name." <".$mail_from.">\r\n";
ini_set ("SMTP", "ssl://serveraddress");
ini_set("smtp_port","465");
ini_set("sendmail_from","noreply@name.com");
$sendmail = mail($mail_to, $mail_subject, $mail_body, $mail_header);
if($sendmail == true) { mail("john@name.com", "email sent ok", "email sent to '$_POST[email]'", "yea sent ok");}
Else { mail("john@name.com", "email ERROR", "email not sent to '$_POST[email]'", "yea we got a problem");}
}
【问题讨论】:
-
您遇到什么错误?您知道 SMTP 发送仅限于 Windows 服务器吗?
-
这很奇怪。我没有错误。它可以很好地发送到gmail,但不会出现到hotmail。 (它不在任何地方的垃圾邮件或垃圾邮件中)而且我从来不知道 smtp 发送仅限于 Windows 服务器。这种方式在linux服务器上可以吗?
-
“这是我的代码,修复它”问题是不允许的。
-
@OZ_ 它不是“这是我的代码,适合它”的问题。我试图找出它为什么不使用 ini.set 函数。