如何从网页/网络表单发送电子邮件?

时间:2008-12-04 21:50:19

标签: email

有哪些技术可以通过网页或网页上的表单发送电子邮件?

我有一些背景知识,你将表单数据发布到脚本但我真的不知道cgi脚本是什么(我想知道这是否是建议的方法!)或者什么目前的做法是。

这只是为用户提供了一些联系运营商的方式。页面内的表单似乎比让用户打开邮件客户端更容易。我还担心机器人收到联系电子邮件地址(在mailto:链接的情况下)。

6 个答案:

答案 0 :(得分:4)

提交表单时,该表单中的数据将发送到服务器端脚本。例如,在PHP中,您使用$_POST数组访问该数据,<input name="">成为数组索引。例如..

// <form action="mailer.php">[..]<input name="subject" [..]><input name="content" [..]></form>
echo("The subject is: ". $_POST['subject']);
echo("The content is:" . $_POST['content']);

在最基本的层面上,您所要做的就是使用内置邮件功能的编程语言。同样,在PHP中,这很简单mail()

mail($to, $subject, $message);

您只需将$to设置为您的电子邮件地址(允许用户设置此项,或者他们能够以“您”的方式向任何人发送邮件 - “垃圾邮件” “..),$subject$message将设置为$_POST[]

在您使用带有mail("me@example.com", $_POST['subject'], $_POST['content']);的脚本的HTML文件之前,请考虑如果有人重新加载该页面200次会发生什么情况。您必须具有某种安全性在其中,可能是验证码,和/或速率限制。

有一件事,以前曾经让我感到烦恼 - 请记住“联系我们表格”是提供实际电子邮件地址的替代品!例如,我的邮件客户端保留了我发送的所有邮件的副本,我可以附加文件,并且在熟悉的邮件客户端中写入比<textarea>形式更好(特别是当我意外地“返回”时表格决定清除自己)!

答案 1 :(得分:1)

对于大多数unix / bsd / linux系统,大多数语言都提供了Mail命令的编程包装。

答案 2 :(得分:0)

如果您使用的是ASP.NET 2.0,则可以使用System.Net.Mail命名空间。 More information here

答案 3 :(得分:0)

今天的Web开发语言通常都有用于发送电子邮件的库。它取决于您使用的语言,但您可以在您的语言文档中找到它。它很简单,你语言中的库通常封装并提供你使用的'smtp客户端'行为。您提供带有发件人和收件人的邮件,以及用于连接到SMTP服务器的数据。

或者,有时您可以在Web服务器所在的计算机上使用SMTP功能(如果可用)。我不确定收件人服务器上的电子邮件是否会变得更糟,因为您的服务器可能无法被识别为域的邮件服务器......具有更多经验的人可能会对此发表评论。

答案 4 :(得分:0)

嗯,这是不该做的事情:

<a href="mailto:someperson@someaddress.com">Please spam me, kthx</a>

这是一种更好的代码模式,让用户提交表单,清理输入并按照您认为合适的格式进行格式化,然后将数据传递给您选择的语言的邮件功能。

答案 5 :(得分:0)

发送邮件应该在服务器端完成 - 具体信息会根据您的服务器端语言,操作系统以及服务器对SMTP服务器的访问权限而改变。

如果您正在寻找一种将联系表单添加到博客或公共网站的轻量级方式,请尝试Wufoo - 您可以添加一个非常容易向您发送电子邮件的联系表单(最多3个表单)自由)。我并不隶属于他们,我只是认为他们很酷。