【问题标题】:How to Send email in php without any submission of form?如何在不提交任何表单的情况下在 php 中发送电子邮件?
【发布时间】:2016-08-15 23:08:57
【问题描述】:

我正在编写 php 中的脚本,我想在不提交任何表单的情况下将邮件发送到特定地址。

    <?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";

$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?>

所以请任何人帮助我如何在不提交任何 php 表单的情况下向电子邮件地址发送电子邮件。

【问题讨论】:

  • 不提交也意味着不点击?
  • 在页面刷新或 cron 文件中添加代码。
  • 您希望何时发送电子邮件?在页面加载?在某个时间?
  • 如果在浏览器或 php 命令行中运行,您当前的 php 脚本已经在发送电子邮件。如果您在另一端没有收到电子邮件,可能是服务器没有配置sendmail(php使用sendmail),也可能有其他原因;就像您的 SMTP 服务器信誉低,电子邮件进入垃圾邮件或被电子邮件防火墙清除。在这种情况下,您可以尝试使用 PHP 邮件程序库,您可以随意使用其他一些 SMTP 详细信息。
  • 能否请您告诉我,当您要发送邮件时,具体要求是什么,以便您在这里得到准确的解决方案。

标签: php email phpmailer


【解决方案1】:

发送电子邮件不需要表格。通过调用函数

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

您会自动发送电子邮件。表单用于收集您要发送的信息。如果你已经有了信息,你只需在你的四个变量中填入信息:$to,$subject,$message,和$headers,然后使用函数:

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

如果有帮助,请告诉我! :)

【讨论】:

    【解决方案2】:

    如果您不希望您的脚本在表单提交时执行,那么您还有另外两个选择。

    在您的应用程序的另一个页面中放置指向此页面的链接。

    <a href="path-to-your-mail-sending-file">Send Email</a>
    

    或从另一个 php 脚本重定向到此页面:

    header("Location: path-to-your-mail-sending-file");
    

    您还应该考虑使用PHPMailer,因为它比默认的mail 函数更具可定制性和可靠性

    【讨论】:

    • 点击锚点将提交表单!重定向将提交表单或实际上假定表单已提交以运行某些 PHP。
    • 可以,但这些方法不需要表格。您可以重定向到 PHP 页面,而无需从表单执行此操作。我认为OP希望避免使用表格。至少我是这样理解这个问题的
    • 告诉我你是如何让&lt;a....标签在没有表单的情况下做任何事情的?我有兴趣
    • @RiggsFolly 重定向到页面如何在不触发提交按钮的情况下提交表单??
    • @JiteshNK 代表我的措辞不好,实际上它会导致另一个脚本/页面运行,而没有提交这个。但是,如果 OP 不想提交表单,他们就不想运行另一个页面/脚本
    【解决方案3】:

    您需要使用将在特定时间触发的 cronjob。 如果您的主机不提供对 cronjobs 的访问,您可以使用:

    https://www.setcronjob.com/

    【讨论】:

      【解决方案4】:

      尝试使用 Ajax

      $(document).load(function()
          {
              $.ajax({
                  url: send_email.php,
                  type:'POST',
                  data:
                  {
                      email: email_address,
                      message: message
                  },
                  success: function(msg)
                  {
                      alert('Email Sent');
                  }               
              });
          });
      

      将您的电子邮件代码放在 send_email.php 中

      【讨论】:

      • 即使没有给出任何错误消息,仍然无法正常工作! &lt;script&gt; $(document).load(function() { $.ajax({ url: mailer.php, type:'POST', data: { to: to, message: message }, success: function(msg) { alert('Email Sent'); } }); }); &lt;/script&gt;
      • nandhakumar:你现在打开了一罐讨厌的虫子。您现在必须为这个人编写整个脚本,包括要在服务器上运行的 PHP 代码。我希望你在大约一个小时左右完成后,他真的会费心接受你的回答
      猜你喜欢
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      相关资源
      最近更新 更多