如何在php中以邮件形式发送HTML动态表


How to send HTML Dynamic Table as mail in php?

这里我有一个代码,比如从index.php获取数据,如果用户输入数据,它将显示为类似表格的数据,并且应该通过电子邮件发送到一些预定义的邮件。但在这里,我动态地获取数据,我尝试了$_REQUEST和$_POST这两种方法来获取数据,但在邮件函数中,我试图更改消息参数,但通过php标记,它没有获取并显示一些语法错误。

请检查一下这里的代码

<?php
$to="xxxxxxx@gmail.com";
$fn="Fisrt Name";
$ln="Last Name";
$name=$fn.' '.$ln;
$from="xxxxx@xxx.com";
$subject = "Welcome to Website";
include('newsmtp/smtpwork.php');
 ?>
 <?php
 $message = 'Dear $firstName, 

 Your Welcome Message.'.'
 <table border=1>
    <tr>
        <td>First Name:</td>
        <td><?php $firstName=$_POST['firstname'];
        echo $firstName;?></td>
    </tr>
    <tr>
        <td>Last Name:</td>
        <td><?php $lastname=$_POST['lastname'];
        echo $lastname;?></td>
    </tr>
    <tr>
        <td>Title:</td>
        <td><?php $title=$_POST['title'];
        echo $title;?></td>
    </tr>
    <tr>
        <td>Address:</td>
        <td><?php $address=$_POST['address'];
        echo $address;?></td>
    </tr>
    <tr>
        <td>Phone Number:</td>
        <td><?php $phone=$_POST['phone'];
        echo $phone;?></td>
    </tr>

    <tr>
        <td>Course Name:</td>
        <td><?php $course=$_POST['coursename'];
        echo $course;?></td>
    </tr>
    <tr>
        <td>Website:</td>
        <td><?php $website=$_POST['website'];
        echo $website;?></td>
    </tr>
</table>
Thanks
xxxxxxxxxxxx
';
?> 

尝试此方法,在$message变量外部的变量中分配已发布的值,并在$message变量中打印该变量

$firstname  = $_POST['firstname'];
$lastname   = $_POST['lastname'];
$title      = $_POST['title'];
$address    = $_POST['address'];
$phone      = $_POST['phone'];
$course     = $_POST['course'];
$website    = $_POST['website'];

    $message = 'Dear '.$firstName.', 
     Your Welcome Message.'.'
     <table border=1>
        <tr>
            <td>First Name:</td>
            <td>'.$firstname.' </td>
        </tr>
        <tr>
            <td>Last Name:</td>
            <td>'.$lastname.'</td>
        </tr>
     <tr>
        <td>Title:</td>
        <td>'.$title.'</td>
    </tr>
    <tr>
        <td>Address:</td>
        <td>'.$address.'</td>
    </tr>
    <tr>
        <td>Phone Number:</td>
        <td>'.$phone.'</td>
    </tr>
    <tr>
        <td>Course Name:</td>
        <td>'.$course.'</td>
    </tr>
    <tr>
        <td>Website:</td>
        <td>'.$website.'</td>
    </tr>
</table>
Thanks
xxxxxxxxxxxx
';
?> 


$to       ="xxxxxxx@gmail.com";
$subject  = "Welcome to Website";
$headers  = 'From: xxxxxx <noreply@xxxxxxx.com>' . "'r'n";
$headers .= "MIME-Version: 1.0'r'n";
$headers .= "Content-Type: text/html;'n'tcharset='"iso-8859-1'"'r'n";
$sent   = @mail($to,$subject,$message,$headers); 
        if ($sent) {
            return true;
        } else {
            return false;
        }

此外,添加必要的标题以发送HTML邮件,如Vinoth Babu,Naveen建议的

$to = "naveen@gmail.com";
$subject = $name ." is contact ";
 $headers = "MIME-Version: 1.0" . "'n";
 $headers .= "Content-type:text/html;charset=iso-8859-1" . "'n";
@mail($to,$subject,$message,$headers);

将标头设置为mime版本&您的消息类型,如text/html/

要发送HTML内容/表格,您必须在邮件的标题中添加以下内容,

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "'r'n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
mail($to, $subject, $message, $headers);

请参阅下面的链接,

邮件功能