我有邮件功能
$to = "fahad@somewhere.com";
$subject = "Voucher Number: ".$voucher;
$message = '<html><body>';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Voucher#:</strong> </td><td>" . strip_tags($voucher) . "</td></tr>";
$message .= "<tr><td><strong>Name:</strong> </td><td>" . strip_tags($name) . "</td></tr>";
$message .= "<tr><td><strong>Phone Number:</strong> </td><td>" . strip_tags($product) . "</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($email) . "</td></tr>";
//set content-type
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
// More headers
$headers .= 'From: <livingdeal@overstock-king.com>' . "\r\n";
$headers .= 'cc:'. $email . "\r\n";
mail($to,$subject,$message,$headers);
出于某种原因,我根本没有收到任何邮件。该服务是托管的,所以我没有从localhost运行它,即使我写了
if (mail(....))
{ echo "success";
}
else { echo "failed"; }
我总是获得成功,所以我怀疑它是服务器端的问题。如果php邮件从端口25发出,有没有办法将端口更改为脚本中的另一个端口?还是会在php.ini中。
此外,我是否可以使用其他服务器(具有不同的域)来发送邮件而不将用途重定向到其他网页?我想换句话说,我可以在发送邮件之前通过php脚本连接到smtp服务器吗?
答案 0 :(得分:0)
Mail()不发送邮件,它将其提交给服务器的邮件守护进程进行发送。如果它返回true,那只表示它已成功提交到队列。
您需要查看邮件守护程序的日志,以确定邮件是否在队列中,是否实际发送,如果不是,则在邮件发送失败时记录了哪些错误消息。
BTW,机器正在运行一个邮件守护进程,对吧?答案 1 :(得分:0)
与您的主机核实,许多共享托管公司正在停用mail()
功能以减少垃圾邮件。
你需要使用smtp。
像wordpress这样的应用程序有一个简单的插件来处理这种变化。