2013-12-17 159 views
0

我想用PHP發送帶有圖片和CSS樣式表的電子郵件中的HTML頁面。我怎樣才能添加我的圖像和我的CSS樣式表上傳圖片在服務器?通過PHP在電子郵件中發送HTML頁面

下面是sendind電子郵件中的PHP代碼:

<?php 
$to = "[email protected]"; 

// subject 
$subject = "Test mail"; 

// message 
$message = file_get_contents("index.html"); // index.html contains images and css stylesheet which are not displayin in the email 

// from 
$from = "[email protected]"; 

// 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"; 

// Additional headers 
$headers .= "From:" . $from; 

// Mail it 
mail($to,$subject,$message,$headers); 

echo "Mail Sent."; 
?> 

我將非常感謝您的幫助。提前致謝。

+0

我不認爲它真的會去你想要的。大多數電子郵件客戶端將不會顯示您想要的電子郵件。 – putvande

+0

如果圖像不在服務器上,您如何引用圖像?圖片必須位於服務器上。 –

+0

對圖像使用絕對路徑,您將需要放入內聯樣式,因爲在電子郵件中不支持應用CSS。 – Anup

回答

0

對於複雜的電子郵件,您應該使用類似美妙的PHPMailer類的梅勒類。

這個類很容易發送複雜的郵件(如HTML郵件)。您可以在PHPMailer的示例文件夾中找到示例。

+0

OP是要求圖像引用,而不是如何發佈HTML電子郵件。 –

+0

'我想發送一個HTML頁面' - 聽起來像是他想發送一封帶有圖片的HTML電子郵件。 PHPMailer是一個很好的方法來做到這一點。 –

+0

「我怎樣才能添加我的圖像和我的CSS樣式表上傳圖片在服務器?」 –

0

您可以添加發送HTML文件中像這樣:

$file_name = basename($file); // Get file name 
$data = file_get_contents($file); // Read file contents 
$file_contents = chunk_split(base64_encode($data)); // Encode file data into base64 
$uid = md5(time()); // Create unique boundary from timestamps 
$headers = array(); 
$headers[] = "MIME-Version: 1.0"; 
$headers[] = "From: {$from_name}<{$mail_from}>"; 
$headers[] = "Reply-To: {$mail_from}"; 
$headers[] = "Content-Type: multipart/mixed; boundary=\"{$uid}\""; 
$headers[] = "This is a multi-part message in MIME format."; 
$headers[] = "--{$uid}"; 
$headers[] = "Content-type:text/plain; charset=iso-8859-1"; // Set message content type 
$headers[] = "Content-Transfer-Encoding: 7bit"; 
$headers[] = $message; // Dump message 
$headers[] = "--{$uid}"; 
$headers[] = "Content-Type: application/octet-stream; name=\"{$file_name}\""; // Set content type and file name 
$headers[] = "Content-Transfer-Encoding: base64"; // Set file encoding base 
$headers[] = "Content-Disposition: attachment; filename=\"{$file_name}\""; // Set file Disposition 
$headers[] = $file_contents; // Dump file 
// Send mail with header information 
if (mail($mail_to, $subject, '', implode("\r\n", $headers))) 
    return true; 
相關問題