PHP不会从主机发送邮件

时间:2016-05-03 16:33:35

标签: php email

我的网站上有一个简单的表格。人们留下了一个名字和电子邮件。他们会发送下载链接,然后发送他们的数据。

所有这些都适用于我的测试服务器,但不是实时的。我的提供商对于发送邮件很挑剔,并且想要一个正确的来自adres的说明。

问题:我该如何解决这个问题。我有一个来自adres的标题:

 $from = 'name@example.com';
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .= 'From: In2Motivation <{$from}>' . "\r\n";
 mail($to, $subject, $message, $headers,);

我也尝试过:mail($to, $subject, $message, $headers, '-f name@example.com');

但它仍然不会发送任何东西。这出了什么问题?这是我的脚本还是我的提供商端的东西?

每个人都可以帮助我吗?非常感谢!!!

1 个答案:

答案 0 :(得分:1)

变量$from未在单引号内展开,请改用双引号

<?php
//debug start - comment on production
error_reporting(E_ALL);
ini_set('display_errors', '1');
//debug end
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = "From: In2Motivation <{$from}> \r\n" .
           'MIME-Version: 1.0' . "\r\n" .
           'Content-type: text/html; charset=iso-8859-1' . "\r\n".
           'Reply-To: webmaster@example.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if(mail($to,$subject,$message,$headers)){
   echo "email sent"; 
}else{ 
   echo "email failed";
}