我真的很难用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;