通过php到gmail的html电子邮件与邮件中的文本不兼容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过php到gmail的html电子邮件与邮件中的文本不兼容相关的知识,希望对你有一定的参考价值。

我有一个php脚本从我的网络发送电子邮件到Gmail。

PHP代码

    $str = $_POST['to'];

    $contacts=explode(",",$str);


    foreach($contacts as $contact) {

        $to      = $contact;
        $subject = $_POST['subject'];
        $message = $_POST['message'];


        $headers = "From: ".$_POST['from']. "
" .
        "Reply-To: ".$_POST['reply']."
" .
        "X-Mailer: PHP/" . phpversion();

        if(mail($to, $subject, $message, $headers)){


            echo "<SCRIPT LANGUAGE='javascript'>
                    window.alert('Email Sent Successfully')
                    window.location.href='dashboard.php';
                    </SCRIPT>";
        }else{

            echo "<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Email Not Sent')
                window.location.href='dashboard.php';
                </SCRIPT>"; 

        }
    }

    }else{

    }
}

html代码

<form method="POST" action="">
    <table style="width:100%">
        <tr>
            <td>
              <label >Your Email</label>   
            </td>
            <td style="width:50%">
                <input type="text" name="from" style="widht:100%" />
            </td>
        </tr>
        <tr>
            <td>
                <label>Receipant(s)</label>   
            </td>
            <td style="width:50%">
                <input type="text" style="widht:100%"name="to" />
            </td>
        </tr>
        <tr>
            <td>
               <label>Email for Reply</label>
            </td>
            <td style="width:80%">
                <input type="text" style="widht:100%" name="reply" />
            </td>
        </tr>
        <tr>
            <td>
               <label>Subject</label>
            </td>
            <td style="width:50%">
                  <input type="text" name="subject" />
            </td>
        </tr>
        <tr>
            <td>
                <label>Message</label>
            </td>
            <td style="width:80%">
                   <textarea style="width:100%;height:300px" name="message" ></textarea>
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <br>
                <hr>
                <button type="submit" class="btn btn-primary">Cancel</button>
                <button id="send" type="submit" name="submit" class="btn btn-success">Submit</button>

            </td>
        </tr>
    </table>
</form>

邮件正在发送但gmail文本未正确显示。我参考下面的图片,并在此处看到消息标签显示在“”中,这就是为什么它们不起作用。怎么可能让它变得可行。 enter image description here

答案

在你的标题中你必须告诉你发送HTML消息

$headers = "Content-Type: text/html; charset=UTF-8
".
        "From: ".$_POST['from']. "
" .
        "Reply-To: ".$_POST['reply']."
" .
        "X-Mailer: PHP/" . phpversion();

以上是关于通过php到gmail的html电子邮件与邮件中的文本不兼容的主要内容,如果未能解决你的问题,请参考以下文章

通过 Gmail API 发送电子邮件时应用 MSO 条件语句

如果我需要从gmail回复到我的php网站该怎么办?

通过 PHP 在电子邮件中发送 HTML 页面

我可以使用啥 PHP 邮件库每天通过 Gmail 发送数百封电子邮件? [复制]

通过 smtp.gmail.com 发送 php 邮件连接

通过Python中的smtp.gmail.com在GAE上发送电子邮件