以下是我用来发送电子邮件的PHP代码。出于某种原因,如果我包含以下行,这将转到垃圾邮件:$message .= WEBSITE_URL . '/violation.php?email=' . urlencode($fm_email) . "&key=$activation";
但如果我删除它,它将进入我的收件箱。
任何人都可以帮我解决此问题,以便在我的电子邮件中允许此网址吗?
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: My Name <noreply@myname.com>' . "\r\n";
$subject = 'Subject is here';
$message = "Here is the message";
$message .= WEBSITE_URL . '/violation.php?email=' . urlencode($fm_email) . "&key=$activation";
mail($fm_email, $subject, $message, $headers);
答案 0 :(得分:2)
不要使用php的mail()函数,它会将你的邮件发送到垃圾邮件。而是使用SMTP php邮件程序功能。
为什么我们应该使用SMTP代替PHP mail():
SMTP 登录邮件服务器上的实际帐户,并通过SMTP将邮件发送到其他邮件服务器。如果邮件服务器配置正确,您的邮件将从邮件服务器上的实际帐户发送,并且不会被标记为垃圾邮件。
在大多数情况下,使用sendmail发送带有mail()函数的邮件。没有进行身份验证,如果您在额外标头中使用“发件人:”,它几乎总是被标记为垃圾邮件。
这是因为如果你看一下gmail中的原始电子邮件文件,你会看到发送的标题。您实际上是从user@serverhostname.tld发送的,而不是像您告诉邮件功能那样的someone@example.com。 如果您使用SMTP并查看原始邮件,则电子邮件实际上是从someone@example.com发送的
您可以从以下网址下载SMTP课程:
答案 1 :(得分:0)
使用以下标题可以防止您的电子邮件进入垃圾邮件/垃圾邮件文件夹。
$headers = 'From: ' . $website_name . ' <' . $own_emailaddress . '>' . PHP_EOL;
$headers .= 'Reply-To: ' . $name_sender . ' <' . $email_sender . '>' . PHP_EOL;
$headers .= 'Return-Path: Mail-Error <' . $error_emailaddress . '>' . PHP_EOL;
$headers .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
$headers .= 'X-Priority: Normal' . PHP_EOL;
$headers .= 'MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL;
不要忘记在代码中定义变量。