Php Html表单提交后,直接发送到电子邮件

Php Html表单提交后,直接发送到电子邮件,php,html,forms,email,submit,Php,Html,Forms,Email,Submit,我正在使用Dreamweaver创建一个网站,我的网站有一个表单,但当我单击提交按钮时,它会打开我的outlook应用程序,其中包含我想要的信息。我只是想知道是否有可能发送电子邮件到我的帐户,而不通过我的电子邮件客户端。这是我的密码 顺便说一句,我正在使用Dreamweaver编辑所有代码 <!doctype html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-

我正在使用Dreamweaver创建一个网站,我的网站有一个表单,但当我单击提交按钮时,它会打开我的outlook应用程序,其中包含我想要的信息。我只是想知道是否有可能发送电子邮件到我的帐户,而不通过我的电子邮件客户端。这是我的密码

顺便说一句,我正在使用Dreamweaver编辑所有代码

<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Fiction Filming</title>
<link rel="shortcut icon" href="images/favicon3.ico" type="image/x-icon" />
<style type="text/css">
body {
    background-color: #2c2c2c;
}
</style>
<link href="Css/singlePageTemplate.css" rel="stylesheet" type="text/css">
<!--The following script tag downloads a font from the Adobe Edge Web Fonts server for use within the web page. We recommend that you do not modify it.-->
<script>var __adobewebfontsappname__="dreamweaver"</script>
<script src="http://use.edgefonts.net/source-sans-pro:n2:default.js" type="text/javascript"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<!-- Main Container -->
<div class="container"> 
  <!-- Navigation -->
  <!-- Hero Section -->
  <!-- About Section -->
  <!-- Stats Gallery Section -->
  <div class="gallery"><img src="Images/Newbannercomingsoon.png" alt="" width="1000" height="500" class="logo-pic"/> </div>
  <!-- Parallax Section -->
  <!-- More Info Section -->
  <!-- Footer Section -->
  <section class="footer_banner" id="contact">

<form class="subscribeForm form-fix" name="Subscription Form" method="post" action="mailform.php" enctype="text/plain">
            <div class="newform">
              <div> </div>
              <div>
                <input id="fname" type="text" placeholder="NAME" name="name" required>
              </div>
              <div>
                <input name="email" type="email" required id="email" placeholder="EMAIL">
              </div>
              <div>
                <select name="select" required id="myselect">
                  <option>HELP / SUPPORT</option>
                  <option>BUSINESS ENQUIRES</option>
                  <option>OTHER</option>
                </select>
              </div>
              <div class="text-form">
                <div>
                  <textarea name="textarea" required id="textarea" placeholder="TYPE YOUR TEXT HERE"></textarea>
                </div>
              </div>
              <br><input name="Send" type="submit" id="Send" value="Send">
</div>
</form>
<!-- Step 1: Add an email field here -->

<!-- Step 2: Add an address field here -->
            <!-- Step 3: add a submit button here -->

</section>
  <!-- Copyrights Section -->
<div class="copyright">&copy;2016 - <strong>Fiction filming</strong></div>
</div>
<!-- Main Container Ends -->
</body>
</html>

小说拍摄
身体{
背景色:#2C2C;
}
var\uuuu adobebfontsappname=“dreamweaver”
帮助/支持
商务查询
其他

&抄袭;2016年-小说拍摄
还有,这是我的php文件。。。如果你能修好它,那将非常有帮助

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset="UTF-8">
<META HTTP-EQUIV="refresh" content="0;URL=thankyou.html">
<title>Email Form</title>
</head>

<body>
<?php
if(isset($_POST['submit'])){
    $to = "example@example.com"; // this is your Email address
    $from = $_POST['email']; // this is the sender's Email address
    $sender_name = $_POST['name'];
    $select = $_POST['select'];
    $message = $sender_name . " wrote the following:" . "\n\n" . $_POST['textarea'];

    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    mail($to,$subject,$message,$headers);
    echo "Mail Sent. Thank you " . $name . ", we will contact you shortly.";
    // You can also use header('Location: thank_you.php'); to redirect to another page.
    }
?>
</body>
</html>


因为在表格中,tag u提到的动作是action=“mailto:mail@fictonfilming.com“它正在尝试访问outlook

将操作更改为php文件的名称
action=“yourphpfilename.php”

根据您的服务器配置,您可能无法使用简单的php邮件功能发送邮件

要测试它,请使用:

print mail($to,$subject,$message,$headers);
如果结果不是1,则表示有些东西不好,修复它可能并不容易


我建议您使用PHPmailer或基于API的服务,如MailGun。

您的代码存在一些问题

首先,删除
enctype=“text/plain”
。该类型对于使用表单发送POST数组无效

您还应该删除
,因为这可能会给您带来一些恶作剧

然后,输入的
带有
Send
name属性,并且您使用的是永远不会触发的以下条件语句:

if(isset($_POST['submit']))
将输入重命名为
name=“submit”
,或将条件语句改为
if(isset($\u POST['Send'])
;选择权在你

错误报告会给您带来一些麻烦

现在,我不明白为什么您的代码中有这个$到因为它在任何地方都没有被使用,所以我不能说太多关于这一点,除了摆脱它

如果有人决定不填写任何或所有输入,导致电子邮件为空,您还应该检查空字段

也就是说,我将您的
$\u POST['textarea']
替换为
$textarea
,同时为POST数组分配它

旁注:“提交”和“发送”见上文;相应地修改下面的
if(isset($\u POST['submit'])

if(isset($_POST['submit'])){

// Or the below if using "name="Send" for the input. Uncomment and get rid of the above
// if(isset($_POST['Send'])){

    if(!empty($_POST['email']) 
    && !empty($_POST['name']) 
    && !empty($_POST['select'])
    && !empty($_POST['textarea'])) {

    $from = $_POST['email'];
    $sender_name = $_POST['name'];
    $select = $_POST['select'];
    $textarea = $_POST['textarea'];

    $message = $sender_name . " wrote the following:" . "\n\n" . $textarea;

    // Put your other mail code here

    }

}
所有这一切都假设运行此操作的服务器上有可用的
mail()

我建议您更换:

mail($to,$subject,$message,$headers);
使用条件语句,为了检查是否已发送:

if(mail($to,$subject,$message,$headers)){
    echo "Mail was sent. Check both your inbox and spam, as mail as done its job.";
}
else{
    echo "There was a problem. Check your logs.";
}
添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code

所以我应该在它前面写上打印,而不是邮件。。。1将出现在哪里?顺便问一下,我正在使用Dreamweaver编辑代码。您使用的是本地服务器吗?必须有本地服务器才能运行PHP,当运行PHP文件时,应该会看到函数的输出。如果您没有本地服务器,我建议您使用适用于Windows的XAMPP或适用于MAC的MAMP。什么是本地服务器?PHP文件运行,并重定向到我想要的页面,但它不发送电子邮件。对不起,我实际上复制了错误的版本。。。它确实说了mailform.php而不是mailto命令。这里有很多问题是吗?你能说出它们是什么吗?请参考我在下面为你发布的答案。如果你看到了我的答案,我在提交按钮上犯了一个错误。重新加载它以查看我对它所做的更改。只是想知道,您说过要删除标记,但这是否意味着它不会重定向到我的感谢页面?此外,我只是想知道,您只提到了$sender_名称和$textarea。这是否意味着将使用$select,因为我希望它成为电子邮件的主题,或者只是消息中的某个地方。。。感谢you@NicholasKlvana-Hooper把它加回去。但是
0
可能重定向太快,可能无法处理您的PHP,但请尝试一下。您还可以使用标头重定向。你没有试过我在回答中提到的吗?我做过,效果很好。如果问题没有解决,那么我不知道还能说些什么或做些什么来帮助你。如果它确实解决了,然后考虑接受答案,否则其他人可能会认为这个问题仍然是开放的/未解决的,可能会发布更多的答案。抱歉打扰你,但我只是尝试了代码,它工作得很好。我将您刚才谈论的0更改为5。代码有一个缺陷。。。我没有发送电子邮件。。。我想这是因为它丢失了我的电子邮件。。。我应该把这个放在哪里?嗨,Fred-ii-我刚刚改变了我的问题,所以php部分是最新的,现在已经启用了。。。也许你能告诉我我做错了什么。。。
<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code