1) 带有输入的 HTML 表单
<form action="" method="post">
<label for="name">Name:</label>
<input type="text" name="name" id="name" />
<label for="Email">Email:</label>
<input type="text" name="email" id="email" />
<label for="Message">Message:</label><br />
<textarea name="message" rows="20" cols="20" id="message"></textarea>
<input type="submit" name="submit" value="Submit" />
</form>
2) 使用 PHP 处理
这可以放在一个单独的文件(例如 sendemail.php)中,您将在其中将表单的操作 URL 设置为指向该文件。或者,让表单提交到自身(将操作 URL 留下空白),并测试表单的其中一个值是否正在被 POST,然后在该处进行处理。
<?php
// from the form
$name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
// set here
$subject = "Contact form submitted!";
$to = '[email protected]';
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($to, $subject, $body, $headers);
// redirect afterwords, if needed
header('Location: thanks.html');
?>
3) 测试它
并确保关注围绕网络的安全新闻。
谢谢,这真的很有帮助!
因为我对 PHP 还很陌生。
嗨,一如既往很棒的东西——但由于某种原因,我无法让它正常工作!它重定向到我的谢谢页面,但电子邮件没有收到。是否需要在 php 中配置什么特殊的东西?我正在运行 php4(但我对 php 东西并不太了解!!)
顺便说一句,我喜欢你在 twitter 上的作品!
您是否已将 [email protected]‘ 修改为您自己的电子邮件 ID?
太棒了!——但由于某种原因,它重定向到我的谢谢页面,但电子邮件是空白的,里面没有任何数据。任何帮助将不胜感激。我正在学习 PHP。
我遇到了同样的问题,就像它没有读取输入一样。
问题已解决,表单方法必须是 POST(我真是笨!:))
再次感谢 Chris,再次感谢,是的,再次感谢!!
感谢 Chris,这真的很有帮助
我仍然无法让它正常工作。使用 wordpress。
我收到此错误:警告:无法修改标头信息——标头已由 (输出开始于 /home2/yourmedp/public_html/wp-content/themes/obvious/inc/contact-form.php:3) 在 /home2/yourmedp/public_html/wp-content/themes/obvious/inc/contact-form.php 的第 24 行发送。
你能告诉我批量邮件的解决方案吗??
您可以使用 foreach 或 while 函数向每个用户发送电子邮件。
例如:
$mails=array(“1″=>”[email protected]”,”2″=>”[email protected]”);
foreach ($mails as $mail=>$email) {
mail($email, $subject, $body, $headers);
}
在 php 代码段中替换以下内容
$body = <<<HTML
$message
HTML;
使用
$body = $message;
它应该可以工作。
嗨,感谢这段代码,我一直在努力让我的表单工作!我确实遇到了一些问题,你需要更改上面提到的代码^^^^^,此外,我在电子邮件中没有收到人的姓名,所以我用“联系表单已提交!”替换了“$name”,现在他们的姓名会出现在标题中:-)。
再次感谢,Liam
经过一些调整后,它可以工作
将输入表单和 textarea 名称和 ID 更改为小写。
但我不能这样使用它。
我不确定如何将 PHP 与 HTML 链接。有人可以给我发邮件吗?
刚刚开始学习 web 教育的开发阶段......去年就需要这个。
非常有用,谢谢。
我在本地服务器上测试时遇到问题。请问如何才能使其正常工作?。
我知道我可以下载一个邮件服务器。有什么想法吗?
只有当您在变量名($Name)中写入与 HTML 文档中的输入标签完全相同的内容时,它才会起作用。我通过复制粘贴的方式使其正常工作,因此我确信变量具有相同的名称。
在代码示例中,名称是用大写字母写的,而在 php 代码中,变量名是用小写字母写的,这就是问题的所在。
希望有帮助..
啊,是的!这绝对是一个问题。现在上面的代码已修复。
嗨 Chris,
感谢这个表格。不过由于某种原因,当我输入电子邮件地址时,表单无法正确提交。但是,如果我将电子邮件留空或省略 @,它可以正常工作。您有什么建议吗?
干杯!
在 php 代码中,第二个“$headers”之后的句号是错误吗?还是需要它?
这意味着:“将其追加到现有字符串中”。
嗨
抱歉,我是意大利人,<<<HTML HTML; 是什么意思?
我在其他地方也看到过。
为什么当我运行此源代码时
结果总是
警告:mail() [function.mail]:无法连接到“localhost”端口 25 上的邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置,或使用 ini_set()。
你是唯一一个将此任务用我真正理解的术语表达出来的人......非常容易理解。谢谢!
嘿,伙计们,这对我来说不起作用 :(,我已经做了所有的事情,也替换了 Danny 在上面提到的代码......但我没有收到任何电子邮件 =/ ...... 任何猜测为什么?
嘿,这些东西运行良好,但我的 gmail 没有收到任何邮件。是什么问题?
这段代码可以工作,但非常不安全,人们可以入侵电子邮件系统。我建议参考以下教程,http://w3schools.com/php/php_secure_mail.asp,但不要完全照搬,因为 w3schools 的内容不太可靠。
无论如何,这段代码对于基础学习来说还不错!
有没有办法让这个表单中的输入字段在为空时不显示?
大家好,
就像之前有人提到的,我正在本地服务器上测试它,以便将邮件发送到我的个人 Gmail,但我没有收到任何邮件。我在其他帖子里看到过,有时这可能需要一段时间,因为—— —— —— > 还是我的等待毫无意义,因为实际上它没有工作。
任何反馈都会很棒 =)
// G //
上面的代码有什么变化……没有电子邮件提交……我尝试向自己和用户发送完美的邮件副本……配置设置怎么样?
我是一个 PHP 新手。我收到了邮件,但提交后,我收到一个网页错误 “无法找到网页”。有人可以帮忙吗?
由于我不是代码方面的熟练操作者,我无法让这个表单为我工作。现在,它将表单发送到我的邮箱,但电子邮件正文中没有消息。我替换了
$body = $message;
但仍然没有结果。
我还将表单方法设置为 “post”,并且 action 指向 php 文件。有人想尝试一下,还是这个问题在上面已经解答过了,只是我没有理解?
我刚开始学习 PHP,所以我不太明白。
但我遇到了页面错误,请帮忙。
这是错误信息
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\wamp\www\contact.php on line 19
我是 PHP 新手,我不明白从哪里开始。有人可以帮我吗?
谢谢!
Hasem,这很简单,首先创建一个 PHP 文件,例如 index.php 和一个名为 form_process.php 的处理文件。将这些文件放在同一个文件夹中。
现在,复制上面的 HTML 代码并粘贴到 index.php 中,并在 action 属性之间添加 form_process.php。
在 form_process.php 文件中粘贴上面的 PHP 代码,就是这样。如果您在本地服务器上测试代码,请使用 “Test Mail Server For localhost” 进行电子邮件测试。
谢谢。
@Chris Coyier
感谢您发布这篇文章。
实用且简单的代码片段。
从这篇代码片段文章中赚了 10 美元。
谢谢
您在没有将 SMTP 端口更改为 597 的情况下发送了电子邮件。默认情况下是 25 吗?
如果收件人超过 1000 个,如何发送电子邮件?
我在我的服务器上试了一下,但出现以下错误
Parse error: syntax error, unexpected $end in /home/content/41/8892341/html/toastdispatch/Apps/EmailPHPTest/emailr.php on line 25
任何帮助都会很好,我正在学习 PHP。
感谢 css-tricks!您很棒!您就是上帝!
不错的代码片段。它可以在没有邮件服务器的情况下工作吗?
如何在 PHP 中创建带有通知的订阅表单?请帮我。
这对我来说完全不起作用。请帮忙,我对此很生气!
谢谢,页面显示出来了,但我没有收到 Gmail 邮件。请帮忙!
仅适用于您的主机提供的网络邮件。
像这样的功能……但我正在寻找在 lightbox 中打开感谢页面的相同功能。
请提供帮助?