[英]html and css code is not readable in the email php mail
我真的很難使用 php mail() 函數制作帶有附件的電子郵件,我已經成功附加了我的文件,但消息只顯示了 HTML 和 CSS 代碼,而不是像這樣的電子郵件正文消息:
這是我的代碼:
$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>
</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>
</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>
</td>
</tr>
<tr class="item">
<td>
Total
</td>
<td>
<b>Rp '.$payment.'</b>
</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </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> </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";
有人可以幫我嗎??
代替
$message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/plain;
嘗試
$message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/html;
您的標題設置為多部分/混合,請嘗試整理它們:
$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";
還將消息中的內容類型更改為:
$message .= "--PHP-alt-$random_hash\r\n"."Content-Type: text/html;
和其他任何地方
我通常不是“嘗試不同的包”類型響應的忠實粉絲,但我對 PHP 的mail()
函數進行了例外處理。 有更多無痛的解決方案可以避免您遇到的問題。 在過去的幾年里,我使用 PHPMailer ( https://github.com/PHPMailer/PHPMailer ) 取得了巨大的成功,但還有其他幾個,例如 Swiftmailer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.