使用 php 从 html 网页发送电子邮件

send an email from a html webpage using php

我正在尝试从网页发送电子邮件,但是当我单击提交按钮时 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_Mailer 库。 请参考这个http://www.codesanitize.com/2021/04/send-html-email-with-attachment-using.html

在此处添加此答案以列出一些可以完成的事情。这绝不是关于如何设置 smtp 服务器的正确教程。它只是浏览主题以说明使用 php.

发送电子邮件的基本要求

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

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

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

您可以自己设置 smtp 服务器,也可以使用现有的服务器(如 gmail 或 yahoo)。安装 smtp 服务器的步骤取决于您的 OS。对于 ubuntu,您可以检查 here and for windows server you can check here。此列表绝对不是详尽无遗的。这些旨在为您指明正确的方向。

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

中查看详细信息

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

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