Hallo Zusammen
Ich hab da ein komisches Problem mit phpmailer, vielleicht hatte das ja bereits jemand von euch.
Für eine Webanwendung wird via AddEmbeededImage ein Bild von Benutzern mitgesendet.
Es kann also sein, dass ich ein E-Mail von PHP mit 3 Benutzer Bildern erhalte.
Die Bilder werden mit der methode $mail->AddEmbeddedImage eingebunden, wobei ich eine methode der user klasse verwende, um zu sehen ob der Benutzer ein Bild von sich hochgeladen hat oder nicht. Wenn nicht, erhalte ich den Pfad zum default.jpg.
Das funktioniert soweit alles, bis auf die Tatsache dass wenn ich zwei Benutzer habe, welche beide das default.jpg zurückgeben und dieses eingebunden wird, ich im E-Mail jeweils nur bei der ersten Verwendung des default.jpg das Bild auch angezeigt bekomme. Beim andern erhalte ich ein rotes Kreuz.
Kann es sein, dass phpmailer ein Bild nur einmal einbindet, auch wenn ich ihm eine andere CID und Namen gebe? Dies würde erklären weshalb ich das Bild mit der gleichen Quelle jeweils nur beim ersten Benutzer sehe.
Ich sehe allerdings bei der phpmailer Klasse nicht ganz durch wo er dies ggf.
prüft damit ich es umschrieben könnte.
Die Attachments werden auf jeden Fall so aufgenommen:
httpsdocs/nwPublicStore/default/users/default_32.jpg / default_32.jpg / Duke_Nukem.jpg / base64 / application/octet-stream / / inline / Duke_Nukem
httpsdocs/nwPublicStore/default/users/default_32.jpg / default_32.jpg / Iron_Man.jpg / base64 / application/octet-stream / / inline / Iron_Man
httpsdocs/nwPublicStore/CH1201001/users/4_32.jpg / 4_32.jpg / Demo_User.jpg / base64 / application/octet-stream / / inline / Demo_User
Hat jemand damit schonmal die gleiche Erfahrung gemacht?
Vielen Dank für kreative Inputs!
Grüsse
WORKAROUND:
PHP-Code:
if($userInfo->getUserImage($user['userID'], "32") == 'nwPublicStore/default/users/default_32.jpg'){
$mail->mail->AddEmbeddedImage(SERVICE_PATH_ROOT.$userInfo->getUserImage($user['userID'], "32"), 'default_user', 'default_user.jpg');
$cid = 'default_user';
}else{
$mail->mail->AddEmbeddedImage(SERVICE_PATH_ROOT.$userInfo->getUserImage($user['userID'], "32"), $user['userFirst'].'_'.$user['userLast'], $user['userFirst'].'_'.$user['userLast'].'.jpg');
$cid = $user['userFirst'].'_'.$user['userLast'];
}
Und dann im Mailbody:
PHP-Code:
$mailBody .= '<img class="userConnectorImage" src="cid:'.$cid.'" title="'.$user['userFirst'].'_'.$user['userLast'].'" />';
So funktionierts, aber auch nicht wirklich schön.