【问题标题】:Simple way to send email with javascript and PHP [closed]使用 javascript 和 PHP 发送电子邮件的简单方法 [关闭]
【发布时间】:2013-03-14 09:30:12
【问题描述】:

我需要能够从用户那里获取电子邮件地址,然后使用 php 向他们发送带有链接的电子邮件。 我知道有一些使用 jquery 或 AJAX 的实现,但我对这两个主题都没有经验。我希望有一些简单的东西。谢谢

【问题讨论】:

  • 你试过什么?你做了一些最小的研究还是只是给我代码?
  • 一个好的开始是阅读 jQuery 或 AJAX,然后找出一些代码,然后问我们如果它不起作用是什么问题。
  • 这是一个学校项目,虽然我对它感兴趣,但我没有时间阅读 jQuery 或 AJAX。
  • 但是stackoverflow不适用于一些家庭作业
  • 您似乎试图让 stackoverflow 上的人为您完成作业。这不是你应该做的。如果您希望人们帮助您,至少要了解您想要做什么。不仅仅是“我需要这样做”

标签: php javascript email input sendmail


【解决方案1】:

“我需要能够从用户那里获取电子邮件地址”

创建表单:

<form action="emailHandler.php" method="POST" id="emailForm">
    <label for="emailInput">Email: </label>
    <input type="text" name="emailInput" id="emailInput" value="" />
    <input type="submit" id="submitEmail" value="Submit Email" />
</form>

"然后使用 php 向他们发送带有链接的电子邮件"

表单中的提交按钮会将输入字段的值 POST 到 PHP 脚本 emailHandler.php

“我知道有一些使用 jquery 或 AJAX 的实现,但我对这两个主题都没有经验”

您不需要 jQuery 或 AJAX,jQuery 和 AJAX 是 javascript 主题(在这种情况下,AJAX 是关于让您从 HTML 中获取值,然后将它们发布到 PHP 后端,并接收 JSON 对象它将告诉 javascript 是否成功,这里显然不需要,但可以使用),您可以简单地使用内置的 PHP 邮件功能:http://php.net/manual/en/function.mail.php

在 emailHandler.php 中。

我喜欢这样做:

function spamcheck($field)
{
    //filter_var() sanitizes the e-mail
    //address using FILTER_SANITIZE_EMAIL
    $field=filter_var($field, FILTER_SANITIZE_EMAIL);

    //filter_var() validates the e-mail
    //address using FILTER_VALIDATE_EMAIL
    if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function sendMail($toEmail, $fromEmail, $subject, $message)
{
    $validFromEmail = spamcheck($fromEmail);
    if($validFromEmail)
    {
        mail($toEmail, $subject, $message, "From: $fromEmail");
    }
}

然后在 emailHandler.php 中做这样的事情:

$email = isset($_POST['emailInput']) ? $_POST['emailInput'] : false;

if($email != false)
{
    $yourEmail = "example@example.com";.
    $subject = "Link";
    $message = "The link and some message";
    $success = sendMail($email, $yourEmail, $subject, $message);
}

在某些情况下你必须修改 PHP ini 文件,你可以这样做:

ini_set('SMTP' , 'smtp.example.com');
ini_set('smtp_port' , '25');
ini_set('username' , 'example@example.com');
ini_set('password' , 'password');
ini_set('sendmail_from' , 'example@example.com');

“。我希望得到一些简单的东西。谢谢”

如果这不简单,那我不知道是什么。如果您不想让它变得复杂,请使用 jQuery 和 Ajax,然后在线阅读它们(或查看我的个人资料,我已经给出了许多可以使用它的完整工作代码)。

【讨论】:

  • 我可以在同一个站点上有两个表单吗,当我发送这封电子邮件时,我还需要从 xml 站点检索一些数据并将其解析为网站表。
  • 这两个应该是同一个 .php 文件吗?
  • 您不需要其他表单来从 xml 站点检索一些数据以将其解析为网站表。您可以:a)使用 jQuery 和 AJAX 来执行此操作,并使其首先发送电子邮件,然后填充表格,b)使用一些 php 代码在表格上方创建表格或 c)将表格和表格单独保存文件。
【解决方案2】:

如果您尝试在表单中发送电子邮件,您可以对表单操作执行此操作,其余操作类似。希望对你有帮助(:

<form action="MAILTO:name@email.com" method="post" enctype="text/plain">

【讨论】:

  • 我会使用表单,但它需要在服务器端,而且我需要不更改页面。内容需要保留在那里。
【解决方案3】:

PHP 有一个mail function。不过,您需要configure the php.ini

【讨论】:

  • 他不需要,它是可选的,实际上取决于具体情况。他也可以使用 iniset 来修改它,但我想它归结为相同的结论,只是一种不同的思维方式。
  • 我只需要能够从 HTML 中接收电子邮件地址,然后让 php 发送电子邮件。
  • @Jonast92,我同意。好奇的学习者,要接收邮件地址可以使用简单的HTML(使用 表单域),然后在表单的操作页面上,使用PHP邮件函数将邮件发送到检索到的电子邮件地址。
  • 问题是我不能使用表单提交操作,因为这只是网站的一部分。我需要剩下的内容留在那里。
  • 你不需要任何东西留在任何地方,你可以让它像流水一样在网站上流动,在你需要的时候使用它。
猜你喜欢
  • 2015-02-19
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多