通过PHP联系表单发送时,避免将电子邮件视为垃圾邮件

时间:2013-09-30 10:26:05

标签: php email spam-prevention

我正在使用以下代码通过联系表单发送电子邮件。 问题是电子邮件每次都会进入垃圾邮件箱(在outlook,gmail等中)。我怀疑这是因为电子邮件正文中有一个网址(网页网址)。 因此,我想知道是否有一些解决方法(除了将这些电子邮件标记为gmail和Outlook中的非垃圾邮件)以保留URL(我想保留它)但电子邮件不被视为垃圾邮件。也许通过重新构建URL使其看起来不像URL?当然,大公司都有提示和提示。这个伎俩? 非常感谢

<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['message']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {

  // detect & prevent header injections
  $test = "/(content-type|bcc:|cc:|to:)/i";
  foreach ( $_POST as $key => $val ) {
    if ( preg_match( $test, $val ) ) {
      exit;
    }
  }

  //send email
  mail( "dsfds@sfss.com", "Nouveau message de: ".$_POST['name'], $_POST['message'] ."\n From site: ". $_SERVER['HTTP_REFERER']., "From:" . $_POST['email'] . "\r\n" . "BCC: dsfds@gmail.com" );

}
?>

1 个答案:

答案 0 :(得分:2)

使用它发送标题,如下所示:

$to      = 'example@example.com';
$header = "From: noreply@example.com\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/html; charset=utf-8\r\n"; 
$header.= "X-Priority: 1\r\n"; 

mail($to, $subject, $message, $header);