php邮件无法发送

时间:2014-05-17 11:02:25

标签: php email

我正在使用邮件表单,但邮件无法发送到gmail收件箱!!

这是我使用的代码:

<?php
if (isset($_POST['send'])) {
    $name    = $_POST['name'];
    $email   = $_POST['email'];
    $message = $_POST['message'];       

    $emailTo = 'example@gmail.com';
    $subject = 'Sujet:  '.$name;

    $body = "Full Name: $name \n\n  Message: $message \n\n Sent by : $email";
    $headers = 'De: ' .' <'.$email.'>' . "\r\n";

    if(mail($emailTo, $subject, $body, $headers)){  
         echo   "Success";

    }else{  
          echo "Error";

    }
}

&GT;

2 个答案:

答案 0 :(得分:0)

如果要直接从localhost发送电子邮件,则需要安装邮件传输代理(MTA),或者如果您愿意,还需要安装SMTP服务。

IIS提供了一个。您可以找到其他人on Google

您还可以更改php.ini mail settings。这不会每次使用localhost来发送电子邮件,而是使用允许您从PHP脚本发送电子邮件的中继主机。

Source

答案 1 :(得分:0)

尝试此代码:

$name    = $_POST['name'];
$email   = $_POST['email'];
$message = $_POST['message'];

$email_to = "example@email.com";
$email_subject = "Email for: ".$name;

$headers = $headers = 'From: '.$email."\r\n".
       'BCC: '.$email_to_bcc."\r\n" .
       'X-Mailer: PHP/' . phpversion() . "\r\n" .
       "MIME-Version: 1.0\r\n" .
       "Content-Type: text/html; charset=utf-8\r\n" .
       "Content-Transfer-Encoding: 8bit\r\n\r\n";

if (mail($email_to, $email_subject, $message, $headers)) {
    echo "Mail sent";
}

当然,您的服务器必须能够通过PHP邮件功能发送电子邮件。最好通过SMTP设置发送邮件:使用此脚本:https://github.com/Synchro/PHPMailer 易于设置和工作。