2013-04-17 1 views
2

Я разработал страницу для клиента, и мне нужно сделать информационный бюллетень. У меня уже есть шаблон почты, и я хочу вставить картинку в эти письма.Как добавить картинку в электронном письме, которое является html-форматом с SwiftMailer (Symfony2)

Код:

foreach($customer as $customer) 
{ 
    $mail = $customer->getMailcustomer(); 
    $message = \Swift_Message::newInstance(); 
    $message->setSubject('Info'); 
    $message->setFrom('[email protected]'); 
    $message->setTo($mail); 
    $message->setContentType("text/html"); 

    $message->setBody(
    $this->renderView(
      'MyBundle:Customer:email.html.twig', 
      array('form' => $form->createView()) 
    ) 
); 

    $this->get('mailer')->send($message); 
} 

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

Я попытался вставить картинку в email.html.twig, но это не сработало.

ответ

7

Вот пример из http://swiftmailer.org/docs/messages.html:

Вы можете вставлять файлы в два этапа, если вы предпочитаете. Просто запишите возвращаемое значение embed() в переменной и используйте это как атрибут src.

// You can embed files from a URL if allow_url_fopen is on in php.ini 
$message->setBody(
'<html>' . 
' <head></head>' . 
' <body>' . 
' Here is an image <img src="' . 
    $message->embed(Swift_Image::fromPath('http://site.tld/logo.png')) . 
    '" alt="Image" />' . 
' Rest of message' . 
' </body>' . 
'</html>', 
    'text/html' 
); 
2

Поместите свои изображения на сервер. Затем свяжите их с абсолютным URL-адресом в html информационного бюллетеня. Изображения будут просто запрашиваться с этого сервера.

+0

Я согласен с вами, но как ваше предложение сформулировано может быть неправильно понято :) – cheesemacfly

+0

я перефразировать мой ответ, простите мой французский. – mpm

 Смежные вопросы

  • Нет связанных вопросов^_^