【问题标题】:How do I send an E-mail from a webpage?如何从网页发送电子邮件?
【发布时间】:2017-04-12 08:19:30
【问题描述】:

我一直在尝试学习 HTML 的基础知识,并且在此过程中我一直在设计自己的基本网页。我根本不打算公开它,但是帮助我学习 HTML 和 CSS 的所有不同方面是件好事。为此,我在其中一个页面上添加了一个联系人部分,其中包括一个电子邮件地址和一个允许发送电子邮件的表单,我使用了 W3Schools 上的一个教程来创建它。为此,我删除了我自己的电子邮件地址,并将其替换为 someone@example.com,但这里是此特定代码部分的输出:

但是,每当我尝试填写表格进行测试时,我都会收到此弹出消息。如果我点击取消,那么什么也不会发生,但如果我点击确定,那么我电脑上的邮件应用程序就会打开。但是我在表单中输入的消息不存在,并且我在框中输入要发送的电子邮件地址只是更改为我计算机上的默认地址。

那么我可以做些什么来防止这个弹出消息,并且只是将电子邮件发送给我?

以下是 HTML 文档中的相关代码:

<h2 style = 'font-weight:normal'><a name = 'Contact' id = 'Contact'></a>Contact me:</h2>

<p>
  You can reach me at: someone@example.com <br />
  Or by just using the form below
</p>

<form action = 'mailto: someone@example.com' method = 'post' enctype = 'text/plain'>
  <input type = 'text' name = 'name' placeholder = 'Name'> <br />
  <br />
  <input type = 'text' name = 'mail' placeholder = 'E-mail'> <br />
  <br />
  <input type = 'text' name = 'comment' size = '50' placeholder = 'Comment'> <br />
  <br />
  <input type = 'submit' value = 'Send'>
  <input type = 'reset' value = 'Reset'>
</form>

如果 HTML 不足以从网页发送电子邮件,而我需要另一种语言来编写可以做到这一点的程序,那么我在 Python 方面相当胜任,并且我对 C# 有所了解.但是,我从未使用过 JavaScript、PHP、Perl 或其他任何东西(我不知道哪种语言适合)

【问题讨论】:

  • 你无法摆脱它。您正在打开用户计算机的邮件客户端。
  • @epascarello 所以我没有更好的方法来做到这一点,还是我不得不忘记它?
  • 除非你使用像 PHP 这样的服务器端脚本,否则你会得到这个弹出窗口。
  • “更好”是什么意思?使用用户的电子邮件客户端,这就是将要发生的事情。
  • @epascarello bacially 任何可行的方式,如果它太复杂,虽然我可能会从页面中删除它

标签: html email


【解决方案1】:

如果您想提交表单以转到电子邮件,这真的很简单。您可以使用简单的服务器端语言,例如 PHP。你需要3个文件。一个包含前端表单内容的文件,一个在用户点击提交按钮后处理表单的文件,以及一个表单发送后的感谢页面,让用户知道表单已提交。下面是一个演示。

HTML:

 <form action="processor.php" method="post" id="myForm">
        <label for="firstname"></label>
        <input type="text" name="firstname" placeholder="First Name" id="firstname" required>
        <label for="lastname"></label>
        <input type="text" name="lastname" placeholder="Last Name" id="lastname" required> 
        <label for="email"></label>
        <input type="email" name="email" placeholder="Email" id="email" required>
        <label for="comments"></label>
        <textarea rows="4" cols="32" name="comments" id="comments" placeholder="Questions & Comments"></textarea>
        <input type="submit" value="Submit">
    </form>

PHP(processor.php 文件)

/***********************************************************/
/*******   Set the receipient email address below   ********/
/*******   And set the subject line of the email    ********/
/*$recipient_email = "testemail@yahoo.com";*/
$recipient_email = "testemail@yahoo.com";
$email_subject_line = "Mail from Website";

/***********************************************************/
/***********************************************************/

if(isset($_POST['firstname']))
{
$firstName = $_POST['firstname'];
    $lastName = $_POST['lastname'];
    $email = $_POST['email'];
    $comments = $_POST['comments'];

   if(!empty($firstName) && 
    !empty($lastName) &&
    !empty($email) &&
    !empty($comments))
   {

$message = "Name: $firstName, Lastname: $lastName, Phone: $phoneNumber, 
Email: $email, Comments: $comments";

send_mail($email, $message, $recipient_email, $email_subject_line);

   }
}

function send_mail($email, $message, $recipient_email, $email_subject_line)
{
$to = $recipient_email;
$from = $email;
$subject = $email_subject_line;
$headers = "From: {$email}" . "\r\n" . 'Reply-To:' . $email . "\r\n" . 'X-
Mailer: PHP/' . phpversion();

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

header("Location:thankyoupage.php");

thankyoupage.php(数据提交后)

<div class="thankyoucontainer">
    <h1>Thank you, your message has been submitted.</h1>
    <a href="index.php">Go back to home page</a>
</div>

【讨论】:

  • 当我运行这段代码时,只是打开了processor.php。如何使它运行代码?我需要安装某个应用程序才能运行它吗?
  • 请记住,提交表单数据结果的是
    操作是提交表单数据的方法,将数据发布到正文而不是 URL,并且 id 对于自定义 css 样式来说是可选的。如果您用于处理 php 的文件的名称不同,只需将操作的名称替换为您命名的文件中包含表单处理的 php 代码的任何名称。
  • 要使用任何服务器端语言,您需要一个网络服务器来运行它。你不能像 JavaScript 这样在浏览器中运行它。如果你想运行 PHP,你应该查看如何安装 Apache 来运行它。或者更好的是,下载 Wamp (for windows) 或 Mamp (for mac) 这是一个 web 服务器打包工具包,附带运行 PHP 所必需的 web 服务器,例如 Apache
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 2021-08-12
  • 2021-04-05
  • 1970-01-01
  • 2011-12-22
  • 2017-01-16
  • 2016-02-29
相关资源
最近更新 更多