2014-11-11 2 views
1

Я пытаюсь добавить изображение в тело письма из папки. Но он не отображает только отображаемый текст на теге alt. Это мой код.Как добавить изображение в тело php mail

<?php 
    $to = $email; 
     $subject="Reservation notification From abc"; 
     $from = '[email protected]'; 
      $body = '<html><body>'; 
      $body .= '<img src="img/logo.png" alt="Hotel" /><br/>'; 
      $body .= '<table rules="all" style="border-color: #666;" cellpadding="10">'; 
      $body .= '<p style="color:#3366FF;font-size:14px;">Hello'.' '.$name.',</p>'; 
      $body .= "</table>"; 
      $body .= "</body></html>"; 

     $headers = "From: $from \r\n"; 
     $headers .= "Reply-To: $$from \r\n"; 
     $headers = 'MIME-Version: 1.0' . "\r\n" . 
      'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 

      'X-Mailer: PHP/' . phpversion(); 

     mail($to, $subject, $body,$headers); 
?> 
+1

img/logo.png работает на веб-страницах, потому что браузер считает его относительным URL-адресом и добавляет ваше доменное имя в src. Но в электронных письмах вы должны использовать абсолютные пути. Проверьте мой ответ ниже. – Ananth

ответ

2

Это должно работать, как ожидалось:

<?php 
    ... 
    $body .= '<img src="http://domain.com/absolute/path/to/image/img/logo.png" alt="Hotel" /><br/>'; 
    ... 
?> 
1

Вы можете либо ссылка на полностью квалифицированную URL изображения, например, http://yourserver.com/images/image.png

Или вы можете вставить изображение в свой адрес электронной почты с помощью MIME. См. Этот ответ: PHP Attaching an image to an email

Вы можете выбрать, что бы вы ни хотели, но не гарантируется, что изображение будет отображаться почтовым клиентом - в большинстве случаев клиент решает, будут ли они отображаться или не будут отображаться.

+0

Другая ссылка для опции MIME: http://stackoverflow.com/questions/17368770/php-send-an-email-with-image-attachment – cmbuckley