我正在努力让简单的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";
?>
只想要一封电子邮件转到我的电子邮箱。当它出现在收件箱中时,他们输入的主题是我将在收件箱中看到的主题。来自他们的名字。它来自的电子邮件将是他们的电子邮件。内部的消息将是他们在表单中写的消息。 请帮忙。
答案 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这样的东西。