大家好,我正在使用联系表单中的mail(),由于某种原因,它无法使用。
我设置的php编码如下:
// sending email to sales@xxx.com
$to = "hello@xxx.com";
$subject = 'Email From {$name} from your website';
$message = "$name has contacted you from the website and says:
$mcontent
$name 's contact email address is: $email";
$headers = $email . "\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail($to, $subject, $message, $headers) or die ("Failure");
// end of sending mail
returnheader("/xxx/email-sent");
我完全没有错误,甚至在完成后也会进入成功页面。
任何想法,为什么这不起作用。
答案 0 :(得分:2)
我检查了你的代码,它在我的服务器上工作正常,我收到了电子邮件。 在这里,您的SMTP服务器设置看起来有些问题。 您的PHP脚本没有任何问题。 你可以在这里找到你的解决方案 php.ini & SMTP= - how do you pass username & password
同样在Windows环境中, http://www.ruhanirabin.com/php-sendmail-setup-with-smtp-iis-and-windows-servers/
答案 1 :(得分:1)
修改强>
如果你的MTA没有运行,而你启动它,那么用PHP发送的邮件就会消失!他们排队等待,但没有处理。
答案 2 :(得分:1)
这可能与邮件设置有关。你有机器上运行的邮件服务器吗?检查php.ini中的sendmail / smtp_server设置。
答案 3 :(得分:1)
mail()
使用sendmail
:sendmail -t -i
如果邮件已被接受,则返回TRUE
,而不是已发送邮件:
返回值
如果邮件成功接受传递,则返回TRUE,否则返回FALSE。
重要的是要注意,仅仅因为邮件已被接受发送,并不意味着邮件实际上会到达目的地。
我建议将http://swiftmailer.org/与SMTP一起使用,而不是mail()
。
答案 4 :(得分:0)
您应该在变量$subject
$subject = "Email From {$name} from your website";
答案 5 :(得分:0)
如果$headers
只是一个电子邮件地址,则$email
的第一行无效。大概你会想要这样的东西:
$headers = "Cc: " . $email . "\r\n";
或
$headers = "From: " . $email . "\r\n";
答案 6 :(得分:0)
原因可能是,例如,您没有设置邮件服务器,或者如果您有防火墙配置。