在php中发送邮件的难度

时间:2017-02-01 03:38:36

标签: php apache email ubuntu sendmail

我搜索过堆栈溢出以及Ubuntu论坛。我正在写一个网站,我自己使用LAMP服务器托管它。我有一个用户填写的表单,并希望它在用户单击提交按钮后发送电子邮件。到目前为止,我已经尝试过sendmail,ssmtp,phpmailer,以及安装mailutils和使用postfix。我认为这是邮件程序的一个问题的原因是因为在测试后我没有从代码中得到任何错误,我无法从命令行发送邮件。我不想使用phpmailer,因为我不想在网站遭到入侵的情况下对网站中的任何密码进行硬编码。我很感激有人能给我的任何帮助。如果您需要配置文件我已经包含了邮件脚本让我知道提前谢谢。

<?php 
session_start();

if(isset($_POST['submit'])){
    $to = "jmaggsdf@gmail.com"; // this is your Email address
    $from = $_POST['email']; // this is the sender's Email address
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $subject = "Website Email";
    $message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];

    $type = 'plain'; // or HTML
    $charset = 'utf-8';

    $_SESSION['from'] = $_POST['email'];
    $_SESSION['first_name'] = $_POST['first_name'];
    $_SESSION['last_name'] = $_POST['last_name'];
    $_SESSION['message'] = $_POST['message'];

    $headers    = 'MIME-Version: 1.0' . "\r\n";
    $headers    .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
    $headers    .= 'To: ' . $to . '<' . $to . '>' . "\r\n";
    $headers    .= 'From: ' . $from . '<' . $from . '>' . "\r\n";

    if($first_name == NULL || $last_name == NULL || $from == NULL || $message == NULL){
        header("Location: mailError.php");
        die();
    }
    else{
        //$headers2 = "From:" . $to;
        mail($to,$subject,$message,$headers);
        header("Location: thanksPage.php");
        //mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
        //echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
    }
}
?>

1 个答案:

答案 0 :(得分:0)

您使用本地主机发送邮件,然后它不会发送邮件。 它需要实时服务器。