|
![Picture of Horst Nogajski Picture of Horst Nogajski](/graphics/unknown.gif) Horst Nogajski - 2008-07-01 18:43:02
Hi all,
have used the classes a long time for sending my newsletters in Plain/Text with personalized Bodyparts via SMTP. Now I want to switch to AlternativeMultipart-Messages (HTML with Inline-Images).
In the old Script I used this code like in package examples:
// Create replacementpart for PersonalizedBulkmails
$message=$hn->file2string($MAIL_TEMPLATE);
$email_message->CreateQuotedPrintableTextPart($message,"",$text_part);
$email_message->AddPart($text_part);
$email_message->SetBulkMail(1);
... and while looping through the recipients:
/* Create a personalized body part. */
$email_message->CreateQuotedPrintableTextPart($email_message->WrapText($body),"",$recipient_text_part);
/* Make the personalized replace the initially empty part */
$email_message->ReplacePart($text_part,$recipient_text_part);
Now, in the new script, I have to create an alternative PlainText-Body additionally to the HTML-Body with inline-images. So, haven't checked out how I have to do the replacement-parts in both bodies (plain and html) to personalize them.
New Scriptcode, to create a single AlternativeMultipart-Mimemessage works fine:
$HTML_TEMPLATE = file_get_contents('./briefpapier_01.html');
$HEADER_LOGO = embedd_image(dirname(__FILE__).'/nogajski_logo.jpg', $part_cid_01);
$HTML_BODY = str_replace(array('[HEADER_LOGO]','[BODY]','[FOOTER]'), array($HEADER_LOGO,$BODY,$FOOTER),$HTML_TEMPLATE);
$TEXT_BODY = isset($TEXT_BODY) ? $TEXT_BODY : $email_message->WrapText(trim(strip_tags($BODY."\r\n".$FOOTER)));
// create alternative Bodyparts
$email_message->CreateQuotedPrintableTextPart($TEXT_BODY,'iso-8859-1',$part_body_text);
$email_message->CreateQuotedPrintableHTMLPart($HTML_BODY,'iso-8859-1',$part_body_html);
$a = array($part_body_text,$part_body_html);
$email_message->CreateAlternativeMultipart($a,$part_body_alternative);
// add combined Bodypart and related Images
$a = array($part_body_alternative,$part_cid_01);
$email_message->AddRelatedMultipart($a);
Did someone know how to do the replacement and can tell me please?
Regards, Horst
![Picture of Manuel Lemos Picture of Manuel Lemos](/picture/user/1.jpg) Manuel Lemos - 2008-07-01 19:55:14 - In reply to message 1 from Horst Nogajski
If you do not change the images, all you need to do is to use the cid:image_id convention in the link URL in the HTML part. Other than that, the ReplacePart function will take care of using the new personalized text or HTML parts.
![Picture of Horst Nogajski Picture of Horst Nogajski](/graphics/unknown.gif) Horst Nogajski - 2008-07-02 19:44:31 - In reply to message 2 from Manuel Lemos
Hi Manuel,
many thanks for the quick reply. (And also for the great classes ;-) )
Yes, it works perfectly, because the images are not personalized, so I have only to create the two personalized Bodyparts and replace the initially added parts with them.
/* Create personalized body parts */
$part_body_html_personalized = str_replace($search,$replace,$HTML_BODY);
$part_body_text_personalized = str_replace($search,$replace,$TEXT_BODY);
$email_message->CreateQuotedPrintableHtmlPart($part_body_html_personalized,'iso-8859-1',$part_body_html_personalized_id);
$email_message->CreateQuotedPrintableTextPart($part_body_text_personalized,'iso-8859-1',$part_body_text_personalized_id);
/* Make the personalized replace the initially empty parts */
$email_message->ReplacePart($part_body_html_id,$part_body_html_personalized_id);
$email_message->ReplacePart($part_body_text_id,$part_body_text_personalized_id);
Once more: thanks!
Horst
|