Помещение изображений в PHP письмо - PullRequest
0 голосов
/ 14 апреля 2011

Я настроил почтовую форму для отправки электронных писем со своей веб-страницы, и я хотел бы иметь возможность настроить изображения в этих электронных письмах. Это код, который у меня сейчас есть:

 $to = "test@test.com";
 $subject = "Emergency details";
 $body = "Passport picture: <img src='http://www.test.co.uk/files/passport_uploads/".$passport."'/>";
 if (mail($to, $subject, $body)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }

Когда я отправляю это письмо, выходные данные выглядят так:

Passport picture: <img src='http://www.test.co.uk/files/passport_uploads/test.jpg"/>

и фактически отображает код, а не картинку. Можно ли вместо этого сделать изображение на картинке?

Спасибо за любую помощь

Ответы [ 3 ]

3 голосов
/ 14 апреля 2011

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

Ознакомьтесь с руководством по функции mail (): http://php.net/manual/en/function.mail.php

В частности: Пример # 4 Отправка электронного письма в формате HTML

// 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";
0 голосов
/ 14 апреля 2011

Вы отправляете простое письмо, и поэтому оно интерпретируется только как текст.Что вы хотите сделать, это отправить письмо, содержащее HTML вместо простого текста.Для этого необходимо, чтобы вы включали заголовки к письму, объясняющие содержание письма.

Попробуйте это:

$headers .= "--$boundary\r\n
Content-Type: text/html; charset=ISO_8859-1\r\n
Content-Transfer_Encoding: 7bit\r\n\r\n";

$to = "test@test.com";
$subject = "Emergency details";
$body = "Passport picture: <img src='http://www.test.co.uk/files/passport_uploads/".$passport."'/>";
if (mail($to, $subject, $body, $headers)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}

(пример с привязкой от http://www.daniweb.com/web-development/php/threads/2959)

0 голосов
/ 14 апреля 2011

вы отправляете это письмо в виде обычного текста. Вы должны указать, что оно должно интерпретироваться как html-почта с помощью четвертого аргумента mail () (заголовки).

Пример можно найти в документации .

Фрагмент:

// 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 .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...