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

Dowload all Hotspots entries
Hi there, I'm looking for a way to dowload all the Hotspots entries. I've got t...
0 Replies
Posted on Sunday, 06 April 2025
  • New
    • #kml
    • #download
    Set number of hotspots / user groups
    Hi, I'm working with Hotspots for my new website and I love it! After trying ...
    0 Replies
    Posted on Monday, 31 March 2025
    J5 compatibility for Hotspots
    Hi guys, Just started to update my old J3x website. Is there J5 compatibility p...
    1 Replies
    Posted on Monday, 24 February 2025
    • #Hotspots
    • #hotspots Joomla 5
    Text size in the comment input form
    Hello. How can I increase the font size in the comment input field? For examp...
    0 Replies
    Posted on Wednesday, 26 February 2025
    • #CComment 6
    Problem with enlarged image
    Hello. When you click on the image in the comments, it does not appear in the ce...
    1 Replies
    Posted on Wednesday, 26 February 2025