【问题标题】:PHP(form) email not sending correctly with html designPHP(表单)电子邮件无法使用 html 设计正确发送
【发布时间】:2015-12-07 11:31:55
【问题描述】:

问题(仅在点击提交后)

  1. 电子邮件不显示 html 表单或其结果,它只是在多封电子邮件中发送数字“1”

  2. 表单结果显示在下一页(需要发送到其他页面)

我的网站上有一个表格,我想将该表格中的结果发送到我的电子邮件。但是,我希望结果与表单的格式相同。所以我不熟悉 php,我研究了如何发送电子邮件并且我得到了它的工作。看了之后,我意识到如果它是在一个表格中,阅读表格信息会容易得多。我将 html 复制并粘贴到 php 中,并将其全部放在 print 标记中。在插入占位符标签以显示表单结果之前,我更进一步并在表单的输入中插入了只读标签。我遇到的问题是,当我点击提交时,表单会显示在下一页上,而我收到的电子邮件在电子邮件正文中只有数字 1……而且我一次收到几封带有相同消息的电子邮件。

额外:

1. php 代码如下,我只在前三个输入上放置了占位符,因为我只需要几个输入来测试脚本是否有效。

2.原始的html表单(不在下面)有“name”标签,所以当我点击提交时,我输入的结果就会显示出来。

3.如果您阅读代码,您只需要注意前三个输入,其余的都是为了视觉目的。后来我想看看我可以在电子邮件中放入多少表格以及多少样式。

<?php

$to = 'anyemail@email.com';

$subject = "New Mortgage Form ($name)";

$message = Print'
<form>
    <div id="AppInfo">
        <br>
        <span style="text-decoration: underline; font-size: 1.2em;">Applicant Information</span> <br><br>

        Name: <input type="text" title="name" placeholder="' .$_POST['name']  . '" readonly> <br> <br>
        Address: <input type="text" title="address" placeholder="' .$_POST['address']  . '" readonly> <br> <br>
        Rent/Own: <input type="text" title="rentown" placeholder="' .$_POST['rentown']  . '" readonly> <br><br>

        How Long: <input type="text" title="length" readonly> <br><br>
        Prior Address: <input type="text" title="prior" readonly> <br><br>
        DOB: <input type="text" title="dob" readonly> <br><br>
        Marital Status: <input type="text" title="marital" readonly> <br><br>
        SSN: <input type="number" title="estValue" readonly> <br><br>
        Home:<input type="tel" title="home" readonly> <br><br>
        Cell: <input type="tel" title="cell" readonly> <br><br>
        Employer: <input type="text" title="emp" readonly> <br><br>
        Position: <input type="text" title="empPosition" readonly> <br><br>
        Address: <input type="text" title="empAddress" readonly> <br><br>
        Monthly Salary: <input type="number" title="empSalary" readonly> <br><br>
        Date Hired: <input type="date" title="empHired" readonly> <br><br>
        Commission, Overtime, Child Support, etc: <br>
        &nbsp&nbsp&nbsp <input type="text" title="c.o.c.e" readonly> <br><br>
        Wk <input type="number" title="work" readonly> <br><br>
        Fax <input type="number" title="fax" readonly> <br><br>
        Self Employed: &nbsp Yes<input type="checkbox" title="seYes" readonly> &nbsp&nbsp No<input type="checkbox" title="seNo" readonly> <br><br>
        How Long: <input type="text" title="seLength" readonly> <br><br>
    </div>

    <br><br><br>

    <div id="MoDebt">
        <span style="text-decoration: underline; font-size: 1.2em;">Monthly Debts</span>
        &nbsp&nbsp&nbsp&nbsp&nbsp
        <br><br>
        Rent/Mortgage Payment: <input type="text" title="Rent or Mortgage Payment Amount Monthly"> <br> <br>
        Car Payment: <input type="text" title="Car Payment Amount Monthly"> <br> <br>
        Make/Model/Year: <input type="text" title="Make of car/Model of car/Year of car"> <br><br>
        Student Loans: <input type="text" title="Student Loans Amount Monthly"> <br><br>
        Credit Cards: <input type="text" title="Credit Cards Amount Monthly"> <br><br>
        Child Support: <input type="text" title="Child Support Amount Monthly"> <br><br>
        Other: <input type="text" title="Other Debt Amounts Monthly"> <br><br>
    </div>';



// send email
mail($to, $subject, $message);

?>

【问题讨论】:

  • 我刚刚找到了一个替代选项:附件!但是,我仍然想弄清楚这个当前的问题......
  • 这可能是因为您正在打印消息。这将返回 true。所以删除那里的印刷品。
  • 按照这个:php.net/manual/en/function.mail.php 并更新脚本,您的脚本发送 1 因为脚本中不存在标题,所以添加适当的标题并发送电子邮件。
  • 您没有将表单分配给 $message 变量:您正在将该表单的打印结果分配给变量。只需删除 $message 变量开头的Print 即可修复

标签: php html forms email


【解决方案1】:

问题 1: 您实际上是在将 $message 变量设置为 Print ''; 的结果。调用总是返回一个 1,它将作为您的消息发送。

第二个问题也是由于同样的打印调用造成的。

我的意思是你应该试试这个:

    <?php

$to = 'anyemail@email.com';

$subject = "New Mortgage Form ($name)";

$message = '
<form>
    <div id="AppInfo">
        <br>
        <span style="text-decoration: underline; font-size: 1.2em;">Applicant Information</span> <br><br>

        Name: <input type="text" title="name" placeholder="' .$_POST['name']  . '" readonly> <br> <br>
        Address: <input type="text" title="address" placeholder="' .$_POST['address']  . '" readonly> <br> <br>
        Rent/Own: <input type="text" title="rentown" placeholder="' .$_POST['rentown']  . '" readonly> <br><br>

        How Long: <input type="text" title="length" readonly> <br><br>
        Prior Address: <input type="text" title="prior" readonly> <br><br>
        DOB: <input type="text" title="dob" readonly> <br><br>
        Marital Status: <input type="text" title="marital" readonly> <br><br>
        SSN: <input type="number" title="estValue" readonly> <br><br>
        Home:<input type="tel" title="home" readonly> <br><br>
        Cell: <input type="tel" title="cell" readonly> <br><br>
        Employer: <input type="text" title="emp" readonly> <br><br>
        Position: <input type="text" title="empPosition" readonly> <br><br>
        Address: <input type="text" title="empAddress" readonly> <br><br>
        Monthly Salary: <input type="number" title="empSalary" readonly> <br><br>
        Date Hired: <input type="date" title="empHired" readonly> <br><br>
        Commission, Overtime, Child Support, etc: <br>
        &nbsp&nbsp&nbsp <input type="text" title="c.o.c.e" readonly> <br><br>
        Wk <input type="number" title="work" readonly> <br><br>
        Fax <input type="number" title="fax" readonly> <br><br>
        Self Employed: &nbsp Yes<input type="checkbox" title="seYes" readonly> &nbsp&nbsp No<input type="checkbox" title="seNo" readonly> <br><br>
        How Long: <input type="text" title="seLength" readonly> <br><br>
    </div>

    <br><br><br>

    <div id="MoDebt">
        <span style="text-decoration: underline; font-size: 1.2em;">Monthly Debts</span>
        &nbsp&nbsp&nbsp&nbsp&nbsp
        <br><br>
        Rent/Mortgage Payment: <input type="text" title="Rent or Mortgage Payment Amount Monthly"> <br> <br>
        Car Payment: <input type="text" title="Car Payment Amount Monthly"> <br> <br>
        Make/Model/Year: <input type="text" title="Make of car/Model of car/Year of car"> <br><br>
        Student Loans: <input type="text" title="Student Loans Amount Monthly"> <br><br>
        Credit Cards: <input type="text" title="Credit Cards Amount Monthly"> <br><br>
        Child Support: <input type="text" title="Child Support Amount Monthly"> <br><br>
        Other: <input type="text" title="Other Debt Amounts Monthly"> <br><br>
    </div>';



// send email
mail($to, $subject, $message);

?>

【讨论】:

  • 哇,这个词让我更近了一步,我现在将 html 代码发送到我的电子邮件,但我没有将它作为 html 处理,它只是文本。感谢您的帮助!
  • 很高兴我能帮上忙。为此,您需要使用下面的答案中提到的标题。确保在标题中输入正确的值。
【解决方案2】:

您需要将 Content-type: text/html 设置为邮件头。 http://php.net/manual/en/function.mail.php

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
mail($to,$subject,$message,$headers)

【讨论】:

  • Sabeer Sulaiman 的另一条评论让我将 html 代码发送到了我的电子邮件中,我希望您的评论能帮助我从视觉上查看 html,但添加了标题后,我不再收到电子邮件。就像从来没有发送过任何电子邮件一样,所以我不确定它是标题代码还是目前服务器端无法正常工作。不过还是谢谢你的回答!
  • 我向您展示标题,例如您需要设置 Content-type:text/html;内容类型说邮件如何解析您的电子邮件。如果您复制此标题,您将不会收到电子邮件,因为 To mail not right 'To: Mary , Kelly ' 。 "\r\n";给你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-02
  • 2015-10-22
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多