I'm sending an HTML mail from my app, this mail contains URLs, is there a way to prevents from mail clients to show these URLs as links?
for example:
<table>
<tbody>
<tr>
<td>http://www.google.com</td>
</tr>
</tbody>
</table>
will generate" http://www.google.com
instead I want it to generate a static text.
any thoughts?
This is a feature of some mail clients and there's no foolproof way to stop them from doing whatever they want with the message contents.
You could try to trick the mail clients by wrapping the addresses in empty tags and hope that they aren't smart enough to see through it:
<td><span>http</span><span>://</span>www.<span>google.</span>com</td>
Use a "zero width space" character:
It does as the name implies. It adds a space in your string but the space takes up zero width so instead of looking like two strings, it looks like one.
I have found the accepted answer doesn't work for Outlook 2013. I have had success with the following:
http<a href='#' style='text-decoration:none; color:#000;'>://www.google.</a>com
Setting the style cursor:default is not honored by Outlook 2013, but if you only make the middle of the url a hyperlink then a user can still select the link text without the cursor pointer appearing.
I'd say that largely depends on the mail client and thus is beyond your control. The only option would be to not make it a URL. E.g. write www.google.com (which the user can copy/paste just like the URL.
I didn't have any luck in preventing MacMail and Yahoo Mail from creating links out of any text string ending in .com (or other domain extension). After hours of testing (even 'href=""' and 'href="#"' did not work), I finally inserted my own URL and then manipulated the CSS and inline styles to remove the mail clients' link styling.
Adding in hidden line break elements in the right places seems to have fixed this for me (for now) in almost all clients, including desktop Outlook, according to Litmus's tests (Apple Mail desktop looks like the main exception).
https:<br style="display: none;"/>//www.w3<br style="display: none;"/>.org/TR/2020/WD-WCAG22-20200227/
Related
We have Ruby script that fetch and parse reply emails from our clients and putting them on appropriate client object in application.
For that purpose we send email to client with specific "hidden" code/id inside 1x1 pixel img tag (in similar way tracking pixel technology works) when clients reply to email, they quote our original email with code/id inside. And when we get client reply we can detect that hidden code from img tag, and process it accordingly. This works fine except when clients are replying from Outlook 2013.
Outlook 2013 removes image data containing code/id, and put something like "Image removed by sender." so we cannot detect see code/id anymore.
Also tried, making a image from base64 and even encoding code/id inside base64 image, but we got same result.
We tried different solutions, like making custom tags with class name contain code/id. Those custom tags are removed too, and replaced with something like < o:p >< /o:p >
We tried to put code/id inside invisible div, in inline css and various css tricks, and in this case Outlook just removes invisibility of div, and code/id is visible in email content.
There is a option that code/id is visible text inside body or subject, but we would like that this code/id be stays invisible to the clients.
It seems like its almost impossible to pass some hidden data trough reply email from MS Outlook.
Is there any way that we can pass this code/id trough reply email from outlook, without outlook removing it or making it visible?
Thank you.
Unless the data is visible (one way or another), chances are Outlook (or rather Word-light used for editing emails) will remove it.
White text on white background would probably work...
<img src=3D"https://t.yesware.com/t/58c8a29bcdf01103c9661815ef20eff8d=
f34a1b3/556ad713ae0cb0b15199a455f1fa5dfd/spacer.gif" style=3D"border:0; wid=
th:0; height:0; overflow:hidden;" width=3D"0" height=3D"0"><img src=3D"http=
://t.yesware.com/t/58c8a29bcdf01103c9661815ef20eff8df34a1b3/556ad713ae0cb0b=
15199a455f1fa5dfd/spacer.gif" style=3D"border:0; width:0; height:0; overflo=
w:hidden;" width=3D"0" height=3D"0">
I will address this dry-snitching code in a bit
Yesware is a paid service that allows you to track when and where the recipient of your email opens that email, every single time that they do or if they forward it to someone else, you will get the IP address and device type of each of those opens as well.
I've used Yesware for years, this is the first time that it has peeked it's little head out. In an email chain involving my Gmail hosted email and someone we will call Quarles. The first email I sent Quarles went normally, I received notification from Yesware that Quarles opened it from an iPhone. No further notifications came from YesWare which is impossible because he has replied twice.
I discovered in the latest email thread, under my second reply, Image removed by sender.Image removed by sender.
Below my third reply, Error! File name not specified.Error! Filename not specified.
I viewed the headers and, damn the luck, Quarles is using Outlook on a Mac Microsoft-MacOutlook/10.c.0.180410
What I am curious about is what Quarles sees on his end. Because the gif is not gone, the code is still there in our thread untouched. I know because if I open the email thread from another device (non-sending device) I get the notification that someone opened the email. So, what is preventing the code from calling home? Is it his MacOutlook? Is it an add-on he's got?
I am seriously considering having my husband write something better than Yesware. He's not a programmer but he is a SysAdmin so he'll figure it out. Besides, the stupid programs he has designed looked like crap anyway so why not write code for something that is supposed to remain unseen.
Oops, gotta go, if he catches me on stackoverflow he's gonna freak.. ;)
I (and some folks) need to send a lot of similar e-mail's everyday. Using Outlook 2010 as mail client. Today I want to somehow simplify this process.
Thinking about html page with mailto links. Like:
Letter to someone
Letter to someone else
etc...
Problem is come out when I clicked on one of them. Outlooks "New message" window pops up, but without signature. It's only text from mailto link in body.
Can someone point out what I did wrong?
I'm trying to figure this out as well.
According to http://www.experts-exchange.com/Software/Office_Productivity/Groupware/Outlook/Q_26410679.html you get either the body or the signature. I've tested this and removing my body text brought my signature back.
Alternatively, you can hardcode your signature into the body text.
Microsoft is not going to fix this bug. The workaround is to add it in the email body.
I believe the following MSDN article explains what you're describing: Messages that are created outside Outlook do not include the default Outlook email signature (KB 2544665)
Pretty sure you cannot customise a signature from the mailto: link.
The 2 ways to look at it is either setup your signatures in Outlook itself or, add the "signautre" to the bottom of the body included in the link?
I need to hide a 30 character string inside the HTML of an e-mail so when a user replies, their reply can be linked on our server to that 30 character string. We don't want to add the string to the subject or body of the e-mail where it's visible to the user. We also don't want to hide the text which would result in accidental selecting of the 30 character string.
The problem:
Many e-mail clients (like gmail) reduce HTML e-mail content to just the basic tags, making it difficult to find a tag that can hold an arbitrary string. This means we can't create an arbitrary tag, only use standard tags.
Our best solution:
Hide the string in the "title" tag of a table in the e-mail, like this -
<table title="30_character_string">
The solution above works in most cases. Most e-mail clients don't strip out the title tag, making it a viable option.
Why we're stuck: This isn't the best solution because sometimes e-mail clients get very restrictive and eliminate even the title attribute.
Can you help? What is the most successful way to hide an arbitrary string in the body of an HTML e-mail? Is there a better solution for this sort of linking?
If you put the value in markup, plain text replies won't work. Consider a "smallprint" section on the bottom of your email below your signature.
Dear User,
Email content
Regards,
Logo and such
ReplyIdentifer-xxxxxxxx.
If you don't care for that, add a div to the bottom of the email (again below the sig). ANd again, it will be on the bottom of the email where the user will rarely even care to look.
<style>.hide{display:none;}</style>
<div style="display:none" class="hide">ReplyIdentifer-xxxxxxxx.</div>
In this case, you only see it if the email client removes css AND style tags.
Checking some HTML emails I've received & Gmail seems to allow a <head> tag within the e-mail HTML. You could include the info in a <meta> tag within the head of the email.
What type of account are you reading mail in to? If it's also Gmail, you could make use of their ability to allow abritary strings in your emails address after a plus symbol. Override the reply-to header that you set on your out-going mail to youraddress+uniqueID#gmail.com
EDIT: Staying along the lines of e-mail headers though (which feels like it should be the right way to do this), if you make sure to generate a unique Message ID header for each copy of the mail going out, the In-Reply-To header that you get back should be unique to that recipient and that message. Gmail respects the Message ID header & provides the appropriate reply header in response, as should most (all?) mainstream clients/services
I send a lot of HTML emails. The problem with GMail is, if there are more than one emails with the same subject, it hides some similar content and shows a "..." to show the "trimmed content". This screws up with my formatting.
If changing the subject is not an option, is there is any way to avoid this behaviour?
Edit: I should clarify that I programmatically send emails using Amazon SES from a php script. That is why I posted the question in Stack Overflow.
I've just encountered this problem myself, and from my investigations it seems that GMail does indeed trim the content if it is similar to the preceding emails.
My solution is simply to insert the current time stamp at the end of every email:
[15:02:21 29/01/2013] End of message.
To prevent this in HTML emails I'm adding two invisible unique elements: in the beginning and at the end of the mail. Like this:
...
<body>
<!-- this ensures Gmail doesn't trim the email -->
<span style="opacity: 0"> {{ randomness }} </span>
...
<!-- this ensures Gmail doesn't trim the email -->
<span style="opacity: 0"> {{ randomness }} </span>
</body>
{{ randomness }} is being replaced by my templating engine with the value of Date.now() (I'm using node.js, could be anything producing unique output)
Voilà! Finally after long testing I have found a solution to this problem.
What Gmail does is it puts in the "Show Trimmed Content" option if the message is similar to previous ones, or the subject of the email appears as it is in the content of the email.
To avoid this, simply try inserting any randomly generated string inside your mail which will make your email messages different and will not let Gmail insert the Show Trimmed Content option.
If you cannot change your subject you can surely go for the optimization of HTML mailers.
Because HTML file size allowed by Gmail is 102kb. If Gmail finds that your HTML file size is above 102kb then it will show message clipped at the bottom of your HTML mailer. File size is regardless of the image size which are included in the mailers(I am considering image link here).
If there are many white spaces and carriage return in your HTML file. So best option is to inline your CSS using mail chimps inline CSS tool and then compressing your HTML file (Then are numerous HTML compressors available online). This 2 tricks should surely work in order to avoid your email has been clipped message.
For more reference can visit this link.
Settings --> General --> Conversation View --> Conversation View off
This will basically not group the emails plus won't trim the contents.
Inserting one or two random characters below your signature seems to confuse gmail enough to leave content untrimmed but also makes me look like a drunk crazy person.
This issue needs to be resolved if google wants people to take gmail seriously.
I would like the option to integrate more google products but flubs like this which should be no brainers make it difficult to commit.
In addition to the other answers, be aware that messages over 102K in size are likely to be trimmed. Watch out for bloated CSS or inlined images contributing to a file size that's too large.
Edit: Some sources of this information for the curious-
Email on Acid
SendLoop
Pinpointe
There are some workarounds in this thread:
http://productforums.google.com/forum/#!topic/gmail/yoAlDr3PyN4
Workarounds seem to be lame though. I hope you have a second name.....
I just remember that there was one recommendation, to use a different
name in your signature.
If your name is Jim, try using Melvin, or Horatio. That should prevent
the trimming, but it's not guaranteed.
I think this would be best option to avoid the "Hide expanded content Gmail" and prevent the content be stripped.
There are two ways to do it.
Just add a random number at the end of your email
Just adding bookmarklet to your bookmark toolbar and just click when you are going to compose an email
For more details please follow the below link
Refference
Gmail does this if the mail content is the same if the receiver has the same content from the same address. Therefore you should be generating some random ID, or make changes inside your HTML dynamically. Also, if you put random ID inside your content with hidden type will be ignored hidden type.
Solution: while generating HTML with python, I have decided to put today's date.
import datetime
datetime.datetime.now().strftime("%d %B %Y, %H:%M:%S %p")
13 August 2020, 20:29:15 PM
Just insert any unique content after the trimmed contents. That can be anything. Even you can make it invisible by adding it in very light color, like light gray.
Just delete the little bars right above your gmail signature that separate your message from the signature.
I'm trying to use an html email signature that pulls the html from another site. So, imagine I have the html hosted at blahblah.com/blah.html, and blah.html is:
<html>
<body>
Jon Jones
jon#blahblah.com
</body>
</html
And then my html signature would be something like <embed src="blahblah.com/blah.html/> that way I can manipulate the signature without having to constantly change the actual signature in Outlook (which I use to check my email).
I can't figure out any html that will do what I'm trying to do. The embed tag that I posted above doesn't do the trick. What simple line of html can I use to say "display what you find at blahblah.com/blah.html"
I would venture a guess and say this isn't the best way to do this.
From a security standpoint, I wouldn't want to be viewing any email sent by you that also brings in somesite.com/signature.htm. Even if it did, it would invoke a "click to view linked elements in this email" banner, and hide it until I did so (but chances are I'm not clicking).
From a recipient stand point, some spam filters block emails with externally-linked content (your intended recipient may not even get your email, or (best-case) see it with [spam] in the subject line.)
If you want an easy up-keep, you could place the signature in your my documents/some other folder and link to it via outlook's settings, but that about the least intense method (while also not causing concerns or issues to anyone viewing your email.)
It looks like instructions for what you want are here: http://www.emailaddressmanager.com/tips/html-email.html
Under "How to add HTML links in Outlook HTML emails," point to blahblah.com/blah.html
On the other hand, HTML in emails is generally not a great thing because it often isn't very secure (you could send me a page with HTML that would load a virus), so many clients won't be able to recieve it or will flag it as spam.