Żeby obrazek był widoczny w email musisz go dołączyć do wiadomości lub podać bezwzględny adres url.
Tyle że w pierwszy przypadku user nie będzie musiał akceptować pobierania danych z obcego zasoby. Opcja pierwsza jest znacznie lepsza, jedyny minus to większy rozmiar wiadomości.
Używając bibliotek PEAR zrobisz to kilkoma linijkami.
Dodatkowo bezwzględnie użyj templejtów mejlowych -
http://mailchimp.com/resources/html-email-templates/ - są zbudowane w taki sposób żeby mail dobrze się zachowywał w każdym kliencie pocztowym oraz wiele innych przydatnych udogodnień jak np. umieszczanie w odpowiedzi tylko niektórych elementów.
include('Mail.php');
include 'Mail/mime.php' ;
'host' => 'host SMTP',
'auth' => true,
'username' => 'nadawca@php.pl',
'password' => 'hasło',
'debug' => true
);
$text = 'tekstowa wersja mejla'
$html = '<html><body>HTMLowa wersja mejla</body></html>'
$crlf = "\n";
'From' => 'nadawca@php.pl',
'Subject' => 'jakiś temat',
'To' => 'odbiorca@php.pl'
);
$mime = new Mail_mime
(array('eol' => $crlf));
$mime->setParam('head_encoding', 'base64');
$mime->setParam('text_encoding', 'base64');
$mime->setParam('html_encoding', 'base64');
$mime->setParam('head_charset', 'utf-8');
$mime->setParam('text_charset', 'utf-8');
$mime->setParam('html_charset', 'utf-8');
$mime->addHTMLImage('brand.png', 'image/png');
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail_object =& Mail::factory('smtp', $params);
$mail_object->send($recipients, $hdrs, $body);
Tak jest porządnie, każdy inny sposób może być tylko gorszy ;p