Wiem, że podobny wątek już był tutaj poruszany (link), ale mój problem jest delikatnie inny. Otóż chcę wysłać mailing do swoich klientów ze zdjęciem inline (nie w formie załącznika). Robię to tak:
require_once('phpmailer/class.phpmailer.php'); $mail = new PHPMailer(true); $mail->IsHTML(true); try { $mail->SetFrom('ja@mojadomena.pl', ''); $mail->CharSet = 'UTF-8'; $mail->Subject = 'Wesołych Świąt'; $mail->AddReplyTo("ja@mojadomena.pl"); $mail->AddEmbeddedImage("/root/Scripts/swieta.png", "swieta", "swieta.png", "base64", "image/png"); $mail->Body = ' <html> <body> <img alt="Wesołych Świąt" src="cid:swieta"> </body> </html> '; $mail->AddAddress("mail_klienta@interia.pl"); $mail->Send(); $mail->ClearAllRecipients(); } catch (phpmailerException $e) { } catch (Exception $e) { }
Powyższy skrypt działa. Zdjęcie wyświetla się poprawnie w thunderbirdzie oraz na: gmail, o2, home.pl. Jedynym wyjątkiem jest interia.pl, gdzie zdjęcie nie wyświetla się w ogóle...
Zrobiłem więc eksperyment: wysłałem do swojej skrzynki na interia.pl zdjęcie typu inline ze skrzynki na gmail. O dziwo, tym razem się wyświetliło. Sprawdziłem więc źródła obu maili w celu porównania. Kod dotyczący zdjęcia był podobny w mojej wersji z PHPMailer i w wersji wysłanej z gmaila. Content-type ten sam, Content-Transfer-Encoding też, dodawanie zdjęcia odbywa się tak samo (jest obiekt img z parametrem src wskazującym na dany CID).
Ma ktoś jakiś pomysł? Czy interia po prostu blokuje zdjęcia inline, które są wysłane z mniej znanych domen?
Zbliżają się święta i ponownie ten sam problem - nie rozwiązałem go od ostatniego razu, także BUMP.