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

Complete Uninstall to Work in J4??
We have recently updated a site from Joomlav3 to v4 (4.4.2). Now when we go to m...
4 Replies
Posted on Tuesday, 30 April 2024
  • New
  • verschiedene URL's für Kursübersicht einer Kategor
    Hallo, ich habe eine Frage in Bezug auf SEO: ein externer Spezialist macht die...
    1 Replies
    Posted on Monday, 29 April 2024
  • New
  • Google no index für bestimmte Seiten/Details
    Hallo ich habe eine kleine Frage: wo kann ich einstellen, dass Google die Seite...
    1 Replies
    Posted on Wednesday, 24 April 2024
    Changes to Submission Form?
    Are you able to make changes to the Hotspot submission form? There are several f...
    0 Replies
    Posted on Friday, 26 April 2024
  • New
  • Question regarding custom fields
    How do I access custom fields after I have created them?...
    0 Replies
    Posted on Wednesday, 24 April 2024
    • #custom fields