deitch / activator

Easy user activation and password reset, with email confirmation, for nodejs
85 stars 42 forks source link

Html links tags not working #35

Closed wassimz closed 8 years ago

wassimz commented 8 years ago

HI,

I have tried to use a html activation template and I have used the html template example but I have used the EJS technique with the link href tag. But one I receive the email, there is no link. After I have seen the original email, I have found the a character 3D was added and it seems that this is normal as the encoding is 'quoted printable' but such feature have destroy the activation link. Similare issue: http://stackoverflow.com/questions/34694732/node-js-nodemailer-sending-html-with-link

http://stackoverflow.com/questions/34189728/nodemailer-anchor-tag-not-working/34207735#34207735

I have tried to use the nodemailer hmtltotext plugin, but without success.

Any help or hint to solve this issue ??? Thanks

deitch commented 8 years ago

Can you put up a gist with 2 files, the original and what you are getting? It should handle it correctly, especially as the mail client should read the html as quoted-printable. What mail client are you using?

wassimz commented 8 years ago

Currently I am using it with a whole project. I will try to preapre a gist file. Currently I am the french FREE provider as my smtp server and I am sending to a gmail account as recipient. I have tested with the below html template:

Email verification
-------
To validate your email account, please click on the following URL:
<a href="smartappbanner://email/valid?id=<%= id %>&token=<%= code %>">Activate link</a><br/><b>Thanks</b>

Currently I receive the mail correctly but the link is broken. When I do a "View original" on gmail, I see a lot of 3D added which is used for quoted-printable. I have tried to force the usage of the "7bits" encoding but unsuccessfully. Note that also I have activated the Styliner support within my options

wassimz commented 8 years ago

@deitch

Please not also that yesterday I have tried with the Gmail smtp and I got the same results.

deitch commented 8 years ago

That was an enormous pain, but I finally figured out how to reproduce it, and why it didn't show up in the tests.

In the tests, we look at smtp-tester for the data and compare the html received in the email with the html in the source. But we do not look at the raw data; instead we look at content.html, which is parsed from content.data. That parsing is done by https://github.com/andris9/mailparser , which correctly interprets the quoted-printable codes.

So the interim conclusion is that the email should have the 3D and all else in it. The question is, why is gmail (and other mail clients) not handling them correctly?

wassimz commented 8 years ago

Hi @deitch

It seems that the problem is the nature of the link I am creating. Currently I am developping a REST backend server for an Iphone applicaiton and I am using this module to validate user email account. Since now we don't have currently a website, the link in the generated email should allow to open directly the application with the provided parameters. But it seems that gmail does not recognize such feature. I have tested to open the link directly on the Iphone directly and it works. So I will close this ticket.

Thanks a lot for your help.

deitch commented 8 years ago

I am glad it works.

I would like a better understanding of how and why gmail fails with it. Gmail should (and usually does) handle quoted-printable-encoded emails. If you have a way to replicate it without the whole project, it would be good to understand it.