2012-12-06 39 views
0

我收到了一个成功发送邮件给我的联系表。从我的帐户发送邮件。不是虚拟主机

继承人的摘录:

$_POST['message'] = wordwrap($_POST['message'], 70); 
mail ('[email protected]', $_POST['subject'], $_POST['message'] , $_POST['email']); 
echo "<div class='registertext'>Your email was succesfully sent to a member of the administration team. Please wait 24 hours for as to reply and ensure you check your junk mail!<br />To login please click <a href='login.php'>here</a></div>"; 

我的问题是,电子邮件会从我的主机发送。不是我想要指定的电子邮件。我将如何克服这一点?

回答

0

您可以在电子邮件标题指定:

$recipient = "[email protected]"; 
    $from  = "[email protected]"; 
    $replyTo = "[email protected]"; 
    $subject = "Hi!"; 
    $text  = "<p>This is a test!<p>"; 

    $headers = "MIME-Version: 1.0\r\n" 
     ."Content-Type: text/html; charset=utf-8\r\n" 
     ."Content-Transfer-Encoding: 8bit\r\n" 
     ."From: =?UTF-8?B?". base64_encode([Your Name]) ."?= <$from>\r\n" 
     ."Reply-To: $replyTo\r\n" 
     ."X-Mailer: PHP/". phpversion(); 

    //send it! 
    if (mail($recipients, $subject, $text, $headers, "-f $from")){ 
     echo "sent"; 
     } else { 
      echo "did not send"; 
     }; 

,但有一个很好的机会,它会被抓到是垃圾邮件过滤器。在这种情况下,最好的办法是使用一个处理SMTP电子邮件收发和使用您的实际帐户发送邮件PHP邮件库(有可以帮助您处理该几个包:Pear Mail,并PHP Mailer除其他

+0

对不起......这就像我的第8天在PHP。这个垃圾邮件过滤器?ISIT,我的虚拟主机提供商的。也感谢您的输入!管理学习了一下:) – lecardo

+0

收件人的电子邮件服务器可能会检查黑名单中的传入邮件,并且具有用于检测垃圾邮件的算法,包括反向DNS查找来检测发送服务器是否是该域的电子邮件的授权代理。 SMTP将使用您的实际电子邮件服务器通过“登录”发送邮件并发送电子邮件(例如Outlook在配置SMTP服务器时执行的操作) –

0

你。可以利用这将使用SMTP帐户PEAR邮件。这是从我的邮件形式一些代码,我用

 $from = "Name <[email protected]>"; 
     $to = "Name <[email protected]>"; 
     $subject = "Subject"; 
     $body = 'A message!'; 

     $host = "ssl://domain.com"; 
     $port = "465"; 
     $username = "username"; 
     $password = "password"; 

     $headers = array ('From' => $from, 
          'To' => $to, 
          'Subject' => $subject); 
     $smtp = Mail::factory('smtp', 
           array ('host' => $host, 
            'port' => $port, 
            'auth' => true, 
            'username' => $username, 
            'password' => $password)); 

     $mail = $smtp->send($to, $headers, $body); 

     if (PEAR::isError($mail)) { 
      echo("<p>" . $mail->getMessage() . "</p>"); 
     } else { 
      echo("<p>Message successfully sent!</p>"); 
     } 
相关问题