很少有PHP脚本电子邮件未送达


Few PHP script E-Mails Not getting delivered

我已经在我的域下创建了文件夹。文件夹1中的电子邮件脚本正在发送,但文件夹2中的脚本显示message="电子邮件发送成功"。但这些电子邮件没有在电子邮件地址中收到。

我正在使用phpmailer


当此sampleemail.php文件保存在Folder1中时,电子邮件将送达。但当同一文件保存在文件夹2中时,错误消息就会出现

代码如下:

<?
$msg="";
if(isset($_POST['submit']))
{

$from_add = "name@my-web-site.com"; 
$to_add = "myemail@gmail.com"; //<-- put your yahoo/gmail email address here
$subject = "Test Subject";
$message = "Test Message";
$headers = "From: $from_add 'r'n";
$headers .= "Reply-To: $from_add 'r'n";
$headers .= "Return-Path: $from_add'r'n";
$headers .= "X-Mailer: PHP 'r'n";

if(mail($to_add,$subject,$message,$headers)) 
{
    $msg = "Mail sent OK";
} 
else 
{
   $msg = "Error sending email!";
}
}
?>

HTML示例表单如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"       "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Test form to email</title>
</head>
<body>
<?php echo $msg ?>
<p>
<form action='<?php echo htmlentities($_SERVER['PHP_SELF']); ?>' method='post'>
<input type='submit' name='submit' value='Submit'>
</form>
</p>

</body>
</html>

我建议您使用PHPmailer,因为它具有您需要的功能。我不建议您使用方法的原因是它需要更改本地主机中的sendmail()函数。

例如:如果您使用examplep,则必须进入sendmail目录,然后转到sendmail.php将SMTP编辑为mail.google.com,依此类推

请尝试此教程:http://codeforgeek.com/2014/11/phpmailer-ultimate-tutorial/

希望它能帮助你。

查看您的代码,我发现您使用的不是"PHPMailer",而是"PHP的mailer"。

关于你的未送达电子邮件和错误消息的问题,这里有一些一般提示:

  1. 如果发送HTML邮件,请始终发送包含HTML和TEXT的多部分电子邮件
  2. 不要使用"X-Mailer:PHP"。有些邮件服务器会因此给你的邮件增加垃圾邮件分数
  3. 如果你遇到错误,试试这个:

    $errLevel = error_reporting(E_ALL ^ E_NOTICE);
    mail(...);
    error_reporting($errLevel);
    
  4. 尝试使用不同的传递方法(smpt、sendmail…)