1. Todd Williams
  2. CMandrill for Joomla
  3. Monday, 23 September 2013
  4.  Subscribe via email
Hi!

I just figured I'd pass along a quick little hack that will allow image attachments to take advantage of the new "image" tag that is part of the Mandrill API.

In the mail.php plug-in script add a new array for image attachments. I called mine "$iAttachments"


private function mandrillSend()
{
$action = 'send';
$to = array();
$attachments = $this->GetAttachments();
$mAttachments = array(); //file attachments
$iAttachments = array(); //image attachments //<--- add this image array
if(count($attachments) > 0) {


Add an "image" match conditional on $mime_type as shown below:


if(count($attachments) > 0) {

foreach($attachments as $attachment) {
// a lot of people are setting wrong mime_type when using the addAtachment function
// let us try to determine the mime_type ourselves on the base of the filename
//
$mime_type = $this->detectMimeType($attachment[1]);
if(!$mime_type) {
$this->writeToLog(JText::sprintf('PLG_SYSTEM_MANDRILL_UNSUPPORTED_ATTACHMENT', $attachment[2], $mime_type));
// if one of the files is not an image/txt or pdf, then use standard phpmailer
// the mandrill api doesn't support other formats right now
$this->phpMailerSend();
};

//<--- look for attachments with mime type of "image"
//<--- add these images to the new $iAttachment array

if (preg_match('/^image/',$mime_type)) {
$iAttachments[] = array(
'name' => $attachment[2],
'type' => $mime_type,
'content' => $this->EncodeFile($attachment[0])
);

//<--- any other attachments get added to the original $mAttachments array, as per normal
} else {
$mAttachments[] = array(
'name' => $attachment[2],
'type' => $mime_type,
'content' => $this->EncodeFile($attachment[0])
);
}
}
}



Assign to the mandrill message object a new "images" array using the new $iAttachments


if(count($mAttachments)) {
$mandrill->message['attachments'] = $mAttachments;
}

//<--- assign $iAttachments to a new mandrill message "images" array.
if(count($iAttachments)) {
$mandrill->message['images'] = $iAttachments;
}



Now, image attachements will be given a "Content-Disposition" of "inline" as opposed to "attachment" and will display in html messages properly.

Regards,
-- williatf
Responses (1)
Daniel Dimitrov
Support team
Accepted Answer Pending Moderation
Hey Todd,
Thank you for this! I'll add this code to the next release!
Daniel
Please if you use our extensions be so kind and review them at JED
Matukio | Hotspots Pro | CComment Pro
  1. more than a month ago
  2. CMandrill for Joomla
  3. # 1
  • Page :
  • 1


There are no replies made for this post yet.
However, you are not allowed to reply to this post.

Last questions

Question regarding custom fields
How do I access custom fields after I have created them?...
0 Replies
Posted on Wednesday, 24 April 2024
  • New
    • #custom fields
    Google no index für bestimmte Seiten/Details
    Hallo ich habe eine kleine Frage: wo kann ich einstellen, dass Google die Seite...
    0 Replies
    Posted on Wednesday, 24 April 2024
  • New
  • Language parameter in the link to the comment
    Hello. 1) I have a multilingual website (3 languages). If someone added a comme...
    1 Replies
    Posted on Saturday, 06 April 2024
    categories icon in header
    Hi! I saw this in the promo, but I can't find how to set it up. https://compo...
    0 Replies
    Posted on Monday, 22 April 2024
  • New
    • #style
    • #Categories
    Questions on new installation...
    Working on getting this set up... https://eastend2024.joepolecheck.com/rumma...
    3 Replies
    Posted on Wednesday, 17 April 2024
  • Resolved
  • New