Adding a Share by Email Button to Your Tumblr Posts

Apparently email is still a valid way of sharing things. It may still be the best way of sharing something with one person. Every social media app has an api for “share” buttons, but there doesn’t seem to be a whole lot of code out there to steal in the way of email sharing buttons. So if you have a Tumblr blog like this one, and can run some Ruby, steal this script if you like:

require 'open-uri'

def main
  image_url = "https://s3.amazonaws.com/gaslight-blog/email_button.png"
  subject = "{Title}"
  body = <<-eos
Check out this article...

{Title} <{ShortURL}>
  eos

  puts "<a href='mailto: ?subject=#{subject}&body=#{encode(body)}'><img src='#{image_url}'></a>"
end

def encode(string)
  string = URI::encode(string)
  string.gsub!('%7B','{')
  string.gsub!('%7D','}') 
  string
end

main

The output is html that you can paste into your custom Tumblr theme. An anchor tag, with a mailto action, that wraps a button image. You’ll need to replace the value of “image_url” in the script ( the one here is locked down by s3 ). The rest may work out just fine for you.

The email copy is uri-encoded and passed as the value to the “body” parameter in the mailto query string. The interface to the mailto scheme is pretty limited. I quit in my attempt to get any multipart html/text email stuff going on. The RFC states “The mailto URL is primarily intended for generation of short text messages that are actually the content of automatic processing (such as "subscribe” messages for mailing lists), not general MIME bodies.“ So, yeah.

I’m also pretty aware that I’m hacking the mailto scheme by putting a space where the "to” value should go. The idea is that an email client will pop up in a draft mode with the “to” field empty, so that the article sharer can fill it in. I got the result I wanted, but the execution seems shady.

Leave comments. I’m interested in better ways to do this, or ideas around how to achieve richer email messages from a share by email button.

Subscribe to the Gaslight Newsletter

Like what you see? Subscribe to Gaslight’s monthly email newsletter for coding tips, tech insights, events, news and more delivered right to your inbox from the Gaslight Team!

Subscribe Now