[ZendTo] HTML Email

Ken Etter kle at msktd.com
Thu Mar 9 13:25:00 GMT 2017


Jules,

You might want to check out https://github.com/PHPMailer/PHPMailer  It
is actively supported.  I use it for sending emails from our PHP based
intranet and it works quite well.

Ken
>>> Jules <Jules at zend.to> 3/9/2017 5:59 AM >>>
> Karl,

I've thought of one problem of your approach: you should really put in
both text and HTML variants of the message to create a
multipart-alternative MIME message.
However, if there are any PHP libraries out there which will do the
MIME encoding for me, I can just add a template file for the HTML part
of the message, and build the entire MIME message from the text part
(which we already have in place) and the new HTML part. That allows for
the possibility of adding an image or two within the message as well.
If anyone out there fancies a quick dig for how to create multipart
MIME messages in PHP, please do let me know what you find.
Cheers,
Jules.
On 08/03/2017 18:58, Jules wrote:


Karl,

Me likes!
That's simpler than what I originally had in mind, as you specifically
are not embedding the image files. It does however mean that recipients
who aren't displaying remote images have to click the "fetch the images"
button in their mail client, which isn't *quite* as nice.
But if people are happy to live with that as a compromise, I should be
able to work this in very easily.
BTW If you haven't spotted it yet, there's a bug in the way the "you
haven't picked up your drop-off and it's about to expire" reminders are
generated. Currently that means the URL to reach the download page is
missing the MailScanner has detected a possible fraud attempt from
"your-zendto.company.com" claiming to be
"https://your-zendto.company.com/"
( https://your-zendto.company.com/)  off the front of it. So the links
in the reminders don't work. The original messages sent out when the
drop-off is created are fine, it's just the reminders when no one has
picked up that drop-off at all, and it's about to expire.

You can work around that by just hard-coding the start of the URL in
dropoff_email.tpl.
You need to replace "{$zendToURL}" with something like MailScanner has
detected a possible fraud attempt from "zendto.your-company.com"
claiming to be "https://zendto.your-company.com/"
( https://zendto.your-company.com/)  or whatever is appropriate for
you.

I'm thinking about a solution to this...
Cheers,
Jules.
On 08/03/2017 18:43, Karl Bundy wrote:


Jules,
All I did was create the new email template, added a new function to
the NSSDropbox.php file (see below) based on the existing deliverEmail
function, then changed the NSSDropoff.php file to use the new function
and new template. I did not embed/attach the image files, just set the
URL in the HTML template. There are more sophisticated ways to send HTML
email, but the Mail function has the basics to get the job done. 

/*!
 @function deliverEmailHTML

 Send the $content of in an HTML formatted email message to (one or
more) address(es) in $toAddr.

*/

public function deliverEmailHTML(

 $toAddr,

 $fromAddr,

 $subject,

 $content,

 $headers = ""

)

{
// If it contains any characters outside 0x00-0x7f, then encode it

if (preg_match('/[^\x00-\x7f]/', $subject)) {

 $subject =
"=?UTF-8?B?".base64_encode(html_entity_decode($subject))."?=";

}
if (preg_match('/[^\x00-\x7f]/', $fromAddr)) {

 $fromAddr =
"=?UTF-8?B?".base64_encode(html_entity_decode($fromAddr))."?=";

}
if (preg_match('/[^\x00-\x7f]/', $this->_emailSenderAddr)) {

 $sender =
"=?UTF-8?B?".base64_encode(html_entity_decode($this->_emailSenderAddr))."?=";

} else {

 $sender = $this->_emailSenderAddr;

} 
// Add the From: and Reply-To: headers if they have been supplied.

if ($fromAddr!="") {

 $headers = sprintf("From: %s", $sender) . PHP_EOL .

 sprintf("Reply-to: %s", $fromAddr) . PHP_EOL .

 $headers;

} 
// Add the MIME headers for 8-bit UTF-8 encoding

$headers .= "MIME-Version: 1.0".PHP_EOL;

$headers .= "Content-type: text/html; cha
rset=iso-8859-1".PHP_EOL;

$headers .= "Content-Transfer-Encoding: 8bit".PHP_EOL;

return mail(

 $toAddr,

 $subject,

 $content,

 $headers // JKF Commented out for now due to security concerns ,

 // JKF Commented out for now due to security concerns

 // '-f "'.$fromAddr.'"'

 );

} 
--- Karl
From: zendto-bounces at zend.to [mailto:zendto-bounces at zend.to] On Behalf
Of Jules
Sent: Wednesday, March 08, 2017 11:19 AM
To: ZendTo Users <zendto at zend.to>
( mailto:zendto at zend.to) 
Subject: Re: [ZendTo] Use different AD attribute
Karl,

Yes, I agree this would be nice. I basically haven't had time to sort
it all out. As I need to make the message a multipart MIME structure,
the email templates get a *lot* more complicated.

What did you have to change except for any templates/*.tpl files?
Any changes you make to the *.tpl files will not be overwritten when
you upgrade later.

So any hints you've got as to what I need to change in order to support
the massively more complex MIME messages, please do let me know.

Thanks!
Jules.

 
On 22/02/2017 16:58, Karl Bundy wrote:


Jules,  Thanks for all of your ongoing work on ZendTo, it has been a
huge benefit for our team, and to the whole user community!   A feature
request that I would love to see is the option for HTML formatted email
notices. They give a bit of polish to the system and oddly enough seem
to give our users a bit more confidence in the system. I have hacked our
instance to send HTML formatted emails (see screenshot below) and I
while what I have works fine, it would be great if this type of
functionality was built-in to the system so that I don’t have to add
back this functionality anytime we do upgrades.   Thanks,
Karl_______________________________________________ZendTo mailing
listZendTo at zend.tohttp://mailman.ecs.soton.ac.uk/mailman/listinfo/zendtoJules
-- Julian Field MEng MBCS CITP CEng 'Once is happenstance, twice is
coincidence, three times is enemy action.' - Ian Fleming
www.Zend.ToTwitter: @JulesFMPGP footprint: EE81 D763 3DB0 0BFD E1DC 7222
11F6 5947 1415 B654
_______________________________________________ZendTo mailing
listZendTo at zend.tohttp://mailman.ecs.soton.ac.uk/mailman/listinfo/zendto
Jules-- Julian Field MEng MBCS CITP CEng'There is one thing stronger
than all the armies in the world; and that is an idea whose time has
come.'www.Zend.ToTwitter: @JulesFMPGP footprint: EE81 D763 3DB0 0BFD
E1DC 7222 11F6 5947 1415 B654 Jules-- Julian Field MEng MBCS CITP
CEng'Adversity is like a strong wind. I don't mean just that it holds us
back from places we might otherwise go. It also tears away from us all
but the things that cannot be torn, so that afterward we see ourselves
as we really are, and not merely as we might like to be.' - Arthur
Goldenwww.Zend.ToTwitter: @JulesFMPGP footprint: EE81 D763 3DB0 0BFD
E1DC 7222 11F6 5947 1415 B654
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ecs.soton.ac.uk/pipermail/zendto/attachments/20170309/d4440084/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: IMAGE.jpeg
Type: image/jpeg
Size: 26857 bytes
Desc: JPEG image
Url : http://mailman.ecs.soton.ac.uk/pipermail/zendto/attachments/20170309/d4440084/attachment-0001.jpeg 


More information about the ZendTo mailing list