【问题标题】:sendmail.php needs some php worksendmail.php 需要一些 php 工作
【发布时间】:2011-11-13 01:36:49
【问题描述】:

我很难让一个简单的 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";
?>

只是想要一封电子邮件转到我的电子邮件。当它出现在收件箱中时,他们键入的主题就是我将在收件箱中看到的主题。 from 将是他们的名字。它来自的电子邮件将是他们的电子邮件,而里面的消息将是他们在表格中写的消息。 请帮忙。

【问题讨论】:

  • 那么,你遇到了什么问题?
  • 我闻到了头部注入的味道。让我们把一些竞争对手放在 CC 中并向他们发送威胁,让你陷入困境。
  • @TheifMaster 我将在 security.php 脚本上线之前合并它,它将去除代码和符号...

标签: php


【解决方案1】:

我强烈建议使用http://swiftmailer.org/ 之类的电子邮件库

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

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

【讨论】:

    【解决方案2】:

    您可能想查看 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 的东西。

    【讨论】:

    • 谢谢!只是想学习 php...还没有打算实际使用它。
    • @Chris 我很高兴它对你有用。是的,如果您正在学习 PHP,那么确保在 PHP 文档中查找内容是一个非常好的主意。有时我只是浏览一下文档,看看是否有什么新东西可以学习。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多