【问题标题】:send an email from a html webpage using php使用 php 从 html 网页发送电子邮件
【发布时间】:2021-08-12 19:41:29
【问题描述】:

我正在尝试从网页发送电子邮件,但是当我单击提交按钮时,php 代码正在打开。我已经安装了 apache 服务器并启动并运行。我不太确定我缺少什么以及如何从网页发送电子邮件。我是否还需要安装 sendmail 和 php 以使其使用 apache 服务器在本地工作。下面是我的代码。请帮忙

    <form action= "temp.php" method="post" name="sentMessage" id="contact" >
<div class="row">
<div class="col-md-6" style="margin-left:-5px;">
    <div class="input-field">
        <input type="text" name="name" class="form-control" id="name"
            required
            data-validation-required-message="Please enter your name" />
        <label for="name" class=""> Name </label>
        <p class="help-block"></p>

    </div>
    </div>
</div>
<!-- For success/fail messages -->
<button name="submit" type="submit"
    class="btn btn-primary waves-effect waves-dark pull-right">Send</button>
<br />
</form>

和php代码如下。

<?php 
if(isset($_POST['submit'])){
    $to = "xyz@gmail.com"; // this is your Email address
    $from = "abc@gmail.com"; // this is the sender's Email address
    $subject = "Form submission";
    $message = "form submission";
    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    mail($to,$subject,$message,$headers);
    echo "Mail Sent";
    }
?>

【问题讨论】:

  • 如果您的 PHP 代码没有被执行,图书馆暂时不会帮助您。你需要确定为什么它没有被执行。通过this checklist 看看是否有帮助。
  • 是的,您需要安装 php 才能执行 php 脚本。大多数 sendmail 与 php 一起安装。如果您安装了 php,请确保带有 php 代码的文件具有扩展名 .php。 EL_Vanja 链接的清单是开始故障排除的好地方。如果您仍然无法运行,请告诉我们操作系统和设置。
  • 谢谢@endeavour。我确实安装了php并配置了它(我没有安装sendmail),但是当我试图通过apache服务器运行时,点击提交后它给了我一个味精'邮件已发送'但即使提供正确的邮件ID我也没有收到任何邮件.你能帮我理解这里的问题吗
  • 还有帮助我如何确保我的邮件真的被发送了。
  • 你需要安装一个邮件服务器(smtp)供php发送邮件。是 IIS 或 xampp 或 wsl 上的 apache。此外,如果您想通知评论者您的回复,您需要像这样提及他们的名字@kavya

标签: php html apache sendmail


【解决方案1】:

在此处添加此答案以列出可以完成的一些事情。这绝不是关于如何设置 smtp 服务器的正确教程。它只是通过主题来说明使用 php 发送电子邮件的基本要求。

您应该做一些事情来使设置正常工作。

  1. 您将看到 php 代码作为输出。如果您没有安装 php(正如您所提到的)或者如果您保存了具有不同扩展名的 php 文件,例如 .html.txt,则可能会发生这种情况。所以你需要安装 php 并确保所有带有 php 代码的文件都有扩展名.php
  2. 如果它仍然不起作用,请查看this checklist(正如 El_vanja 在 cmets 中提到的那样)。它应该可以帮助您对可能出现的问题进行基本的故障排除。

一旦你有 php 工作并且你开始看到 php 输出而不是代码,你将需要设置或找到一个 smtp 服务器。阅读有关 smtp 服务器的更多信息here

您可以自行设置 smtp 服务器,也可以使用现有的服务器(如 gmail 或 yahoo)。安装 smtp 服务器的步骤取决于您的操作系统。对于 ubuntu,您可以查看 here,对于 Windows 服务器,您可以查看 here。这份清单绝对不是详尽无遗的。这些旨在为您指明正确的方向。

对于 Windows 开发环境 xampp 允许您使用外部 smtp 服务器。因此,您只需使用现有的 gmail 帐户对其进行配置,它就会开始发送电子邮件。您可以在他们的 windows 常见问题中查看详细信息here

一旦你有一个 smtp 服务器来发送电子邮件,你就可以在 php 中使用sendmail 来发送电子邮件。

还要注意管理面向公众的 smtp 服务器会带来挑战,在没有正确理解的情况下设置服务器时应该小心。

【讨论】:

  • 谢谢@endeavour。这有助于我更好地理解流程..
【解决方案2】:

【讨论】:

  • 1) 这个问题清楚地表明 PHP 甚至没有被执行; 2)从长远来看,仅链接的答案几乎没有价值。链接可能会过期,然后您的答案将失去很多上下文; 3) 使用 PHP 发送电子邮件的问题在网站内外都得到了很好的介绍。
猜你喜欢
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多