sendmail.php需要一些php工作

时间:2011-11-13 01:36:50

标签: php

我正在努力让简单的sendmail.php工作。 我的表单html是

<form action=sendmail.php id=contact-form method=post>
    <p>
        <label for=cf_name>Name *</label>
        <input id=cf_name name=cf_name placeholder='Enter your name...' required=required title=Name type=text />
    </p>
    <p>
        <label for=cf_email>Email *</label>
        <input id=cf_email name=cf_email placeholder='Email address...' required=required     title='Email address' type=email />
    </p>
    <p>
        <label for=cf_subject>Subject *</label>
        <input id=cf_subject name=cf_subject placeholder='Specify subject...' required=required title=Subject type=text />
    </p>
    <p>
        <label for=cf_message>Message *</label>
        <textarea id=cf_message name=cf_message placeholder='Message text...' required=required rows=10 title='Message text'></textarea>
    </p>
    <p>
        <input type=submit value='Send message'/>
    </p>
</form>

我的邮件脚本是:

<?
    $cf_email = $_POST['cf_email'] ;
    $cf_message = $_POST['cf_message'] ;
    $cf_subject = $_POST['cf_subject'] ;
    $cf_name = $_POST['cf_name'] ;

    mail( "[email removed]", $cf_subject, $cf_message, $cf_name, $cf_email );
    print "Congratulations your email has been sent";
?>

只想要一封电子邮件转到我的电子邮箱。当它出现在收件箱中时,他们输入的主题是我将在收件箱中看到的主题。来自他们的名字。它来自的电子邮件将是他们的电子邮件。内部的消息将是他们在表单中写的消息。 请帮忙。

2 个答案:

答案 0 :(得分:1)

我强烈建议您使用http://swiftmailer.org/

等电子邮件库

发送电子邮件实际上非常复杂,并且有很多方法可以做错。

此外,如果您要设置专业网站,我建议您使用可靠的smtp网关,例如http://sendgrid.com/gmail,以减少您的电子邮件被捕获为垃圾邮件。

答案 1 :(得分:0)

您可能希望查看PHP文档中的示例。

基本上看起来你没有正确地将参数传递给mail()

来自http://php.net/manual/en/function.mail.php应该是:

mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

使用示例#4作为PHP文档的参考,您应该能够这样做:

$cf_email = $_POST['cf_email'] ;
$cf_message = $_POST['cf_message'] ;
$cf_subject = $_POST['cf_subject'] ;
$cf_name = $_POST['cf_name'] ;

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $cf_name . ' <' . $cf_email . '>' . "\r\n";

mail('chriscct7@gmail.com', $cf_subject, $cf_message, $headers);

但正如Homer6所说,如果可以,我建议使用像swiftmailer这样的东西。

相关问题