简体   繁体   English

html 和 css 代码在电子邮件 php 邮件中不可读

[英]html and css code is not readable in the email php mail

I'm really struggling to make a email with attachment using php mail() function, i've successfuly attach my files but message just shown HTML and CSS code not email body message like this :我真的很难使用 php mail() 函数制作带有附件的电子邮件,我已经成功附加了我的文件,但消息只显示了 HTML 和 CSS 代码,而不是像这样的电子邮件正文消息:

在此处输入图片说明

this is my code :这是我的代码:

 $htmlbody = '
                    <!doctype html>
                    <html>
                    <head>
                        <title>Invoice</title>

                        <style>
                        .invoice-box{
                            background-color: rgb(244, 244, 244);
                            max-width:800px;
                            margin:auto;
                            padding:30px;
                            border:1px solid #eee;
                            box-shadow:0 0 10px rgba(0, 0, 0, .15);
                            font-size:16px;
                            line-height:24px;
                            font-family:"Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
                            color:#555;
                            border-color: #fe7100;
                            border-width: medium;
                        }

                        .invoice-box table{
                            width:100%;
                            line-height:inherit;
                            text-align:left;
                        }

                        .invoice-box table td{
                            padding:5px;
                            vertical-align:top;
                        }

                        .invoice-box table tr td:nth-child(2){
                            text-align:right;
                        }

                        .invoice-box table tr.top table td{
                            padding-bottom:20px;
                        }

                        .invoice-box table tr.top table td.title{
                            font-size:45px;
                            line-height:45px;
                            color:#333;
                        }

                        .invoice-box table tr.information table td{
                            padding-bottom:40px;
                        }

                        .invoice-box table tr.heading td{
                            background:#33665e;
                            border-bottom:1px solid #ddd;
                            font-weight:bold;
                            color: white;
                        }

                        .invoice-box table tr.details td{
                            padding-bottom:5px;
                        }

                        .invoice-box table tr.item td{
                            border-bottom:1px solid #eee;
                        }

                        .invoice-box table tr.item.last td{
                            border-bottom:none;
                        }

                        .invoice-box table tr.total td:nth-child(2){
                            border-top:2px solid #eee;
                            font-weight:bold;
                        }

                        @media only screen and (max-width: 600px) {
                            .invoice-box table tr.top table td{
                                width:100%;
                                display:block;
                                text-align:center;
                            }

                            .invoice-box table tr.information table td{
                                width:100%;
                                display:block;
                                text-align:center;
                            }
                        }

                        .block-garis{
                          width: 100%;
                          height: 3px;
                          background-color: #fe7100;
                        }
                        </style>
                    </head>

                    <body>
                        <div class="invoice-box">
                            <table cellpadding="0" cellspacing="0">
                                <tr class="top">
                                    <td colspan="2">
                                        <table>
                                            <tr>
                                                <td class="title">
                                                    <img src="https://4travelo.com/logo.png" style="width:100%; max-width:200px;">
                                                </td>

                                                <td>
                                                    Invoice #: '.$id.'<br>
                                                    Created: '.$tglbook.'<br>
                                                    Due: '.$timeexpiry.'
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>

                                <tr>
                                  <td colspan="2"><div class="block-garis"></div></td>
                                </tr>

                                <tr class="information">
                                    <td colspan="2">
                                        <table>
                                            <tr>
                                                <td>
                                                    4travelo.<br>
                                                    Jl. Kebonsari Menanggal 2B<br>
                                                    Surabaya.
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr class="heading">

                                    <td>
                                        Keterangan Hotel
                                    </td>

                                    <td>
                                        &nbsp;
                                    </td>
                                </tr>

                                <tr class="details">
                                    <td>
                                        Nama Hotel
                                    </td>

                                    <td>
                                        '.$hotelname.'
                                    </td>
                                </tr>
                                <tr class="details">
                                    <td>
                                        Alamat Hotel
                                    </td>

                                    <td>
                                        '.$alamat.'
                                    </td>
                                </tr>
                                <tr class="details">
                                    <td>
                                        Checkin
                                    </td>

                                    <td>
                                       '.$checkin.'
                                    </td>
                                </tr>
                                <tr class="details">
                                  <td>
                                      Checkout
                                  </td>

                                  <td>
                                     '.$checkout.'
                                  </td>
                                </tr>

                                <tr class="heading">
                                    <td>
                                        Guest
                                    </td>

                                    <td>
                                        &nbsp;
                                    </td>
                                </tr>

                                <tr class="item">
                                    <td>
                                        Guest Name
                                    </td>

                                    <td>
                                        '.$paxesname.'
                                    </td>
                                </tr>

                                <tr class="item">
                                    <td>
                                        Type Kamar
                                    </td>

                                    <td>
                                       '.$room.'
                                    </td>
                                </tr>

                                <tr class="item">
                                    <td>
                                        Include BF/Net
                                    </td>

                                    <td>
                                        '.$meal.'
                                    </td>
                                </tr>

                                <tr class="item">
                                    <td>
                                        Dewasa
                                    </td>

                                    <td>
                                        '.$adult.'
                                    </td>
                                </tr>

                                <tr class="item">
                                    <td>
                                        Anak - Anak
                                    </td>

                                    <td>
                                        '.$child.'
                                    </td>
                                </tr>

                                <tr class="heading">
                                    <td>
                                        Total
                                    </td>

                                    <td>
                                        &nbsp;
                                    </td>
                                </tr>

                                 <tr class="item">
                                    <td>
                                        Total
                                    </td>

                                    <td>
                                        <b>Rp '.$payment.'</b>
                                    </td>
                                </tr>
                                <tr>
                                  <td>&nbsp;</td>
                                  <td>&nbsp;</td>
                                </tr>

                                <tr>
                                  <td>&nbsp;</td>
                                  <td>&nbsp;</td>
                                </tr>

                                <tr>
                                  <td>&nbsp;</td>
                                  <td>&nbsp;</td>
                                </tr>
                                <tr style="font-size:10px; padding-top:50px;">
                                  <td><b>Hotel cancelation policy :
                                  <br>1. Pemesanan non refundable<br>
                                  2. Tanggal inap & tipe kamar tidak dapat dirubah</b>
                                  </td>
                                  <td><b>our partner : </b> <br><img src="https://4travelo.com/hb.png" alt=""></td>
                                </tr>

                                <tr>
                                  <td>&nbsp;</td>
                                  <td style=""></td>
                                </tr>
                            </table>
                        </div>

                    </body>
                    </html>';
        $to = $email; //Recipient Email Address
        $subject = "Test email with attachment"; //Email Subject
        $headers = "From: admin@4travelo.com\r\nReply-To: admin@4travelo.com";
        $random_hash = md5(date('r', time()));
        $headers .= "\r\nContent-Type: multipart/mixed; 
        boundary=\"PHP-mixed-".$random_hash."\"";
        // Set your file path here
       $attachment = chunk_split(base64_encode(file_get_contents('/home/travelo/public_html/4travelo.com/triomacan/4travelo_beta-2.0/document/'.$invoice.'.pdf'))); 


        //define the body of the message.
        $message = "--PHP-mixed-$random_hash\r\n"."Content-Type: multipart/alternative; 
        boundary=\"PHP-alt-$random_hash\"\r\n\r\n";
        $message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/plain; 
        charset=\"iso-8859-1\"\r\n"."Content-Transfer-Encoding: 7bit\r\n\r\n";


        //Insert the html message.
        $message .= "$htmlbody";
        $message .="\r\n\r\n--PHP-alt-$random_hash--\r\n\r\n";


        //include attachment
        $message .= "--PHP-mixed-$random_hash\r\n"."Content-Type: application/zip; 
        name=\"invoice.pdf\"\r\n"."Content-Transfer-Encoding: 
        base64\r\n"."Content-Disposition: attachment\r\n\r\n";

        $message .= $attachment;
        $message .= "/r/n--PHP-mixed-$random_hash--";


        //send the email
        $mail = mail( $to, $subject , $message, $headers, '-f admin@4travelo.com' );

        echo $mail ? "Mail sent" : "Mail failed";

can somebody help me ??有人可以帮我吗??

Instead of代替

$message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/plain; 

try尝试

$message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/html; 

Your headers are set to multipart/mixed, try tidying them up:您的标题设置为多部分/混合,请尝试整理它们:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: My Name Here <noreply@example.co.uk>' . "\r\n";

Also change the content type in the message to:还将消息中的内容类型更改为:

$message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/html; 

And anywhere else和其他任何地方

I'm not usually a big fan of "Try a different package" type responses, but I make an exception for PHP's mail() function.我通常不是“尝试不同的包”类型响应的忠实粉丝,但我对 PHP 的mail()函数进行了例外处理。 There are far more painless solutions out there that will avoid the sort of problems you are experiencing.有更多无痛的解决方案可以避免您遇到的问题。 I've used PHPMailer ( https://github.com/PHPMailer/PHPMailer ) with great success over the past few years, but there are several others too, such as Swiftmailer.在过去的几年里,我使用 PHPMailer ( https://github.com/PHPMailer/PHPMailer ) 取得了巨大的成功,但还有其他几个,例如 Swiftmailer。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM