我已经在我的域下创建了文件夹。文件夹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"。
关于你的未送达电子邮件和错误消息的问题,这里有一些一般提示:
- 如果发送HTML邮件,请始终发送包含HTML和TEXT的多部分电子邮件
- 不要使用"X-Mailer:PHP"。有些邮件服务器会因此给你的邮件增加垃圾邮件分数
-
如果你遇到错误,试试这个:
$errLevel = error_reporting(E_ALL ^ E_NOTICE); mail(...); error_reporting($errLevel);
-
尝试使用不同的传递方法(smpt、sendmail…)