PHP电子邮件不发送

时间:2014-06-08 19:57:34

标签: php html5 email

一直试图让这个工作并从网站发送到我的电子邮件,但电子邮件还没有通过。

这可能非常简单。我还阻止了我的实际发送电子邮件(两个区域)

感谢您的帮助!

我在index.php中的php代码

<?php
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_message = $_POST['message'];

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
$mail_to = 'coverupemail@email.com';
$subject = 'Message from a portfolio visitor '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;

$headers = 'From: '.$email."\r\n";
$headers .= 'Reply-To: '.$email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Thank you for the message.');
        window.location = 'index.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Message failed. Please, send an email manually to coverupemail@email.com');
        window.location = 'index.html';
    </script>
<?php
}
?>

我的HTML代码链接到index.php

<form method="post" action="index.php">
    <p class="contact">
        <input type="text" name="name" id="name" value="" size="22" />
        <label for="name"><small>Name (required)</small></label>
    </p>
    <p class="contact">
         <input type="email" name="email" id="email" value="" size="22" />
         <label for="email"><small>Mail (required)</small></label>
    </p>
    <p class="contact">
        <textarea name="message" id="message" value="" rows="10"></textarea>
        <label for="message"><small>Message (required)</small></label>
    </p>
    <p class="contact">
        <input id="submit" name="submit" type="submit" value="Submit" />
        <input name="reset" type="reset" id="reset" tabindex="5" value="Reset Form" />
    </p>
</form>

1 个答案:

答案 0 :(得分:0)

$ mail_status值是多少?即使它的“1”它也不能保证发送邮件:(然后它取决于服务器PHP在消息被移交给服务器的邮件发送部分时返回1。

案例1:如果脚本在服务器上运行,那么尝试使用示例代码验证实际邮件是否已发送,使用以下代码创建页面mailtest.php

<?php mail("coverupemail@email.com","Test Msg","Hello this is just test message");?>

这将验证是否正常工作。

案例2:如果您正在使用本地主机,那么您必须拥有一些SMTP服务器或邮件服务器,以便您可以使用gmail通过您的本地主机发送(我这样做,我使用我的Gmail帐户)

另请参阅此链接Email sending

顺便说一句 一个。 ini_set()我认为没有使用。 湾如果此人导航回来,window.location = 'index.html';也只会导航到索引页面wat?可能会再次发送邮件...所以我建议使用

location.replace('index.html');

THX