I Thought He Came With You is Robert Ellison’s blog about software, marketing, politics, photography and time lapse.

Google Inbox Account Switching

Google Inbox Account Switching

Google is generally pretty good about managing multiple accounts but sometimes you get completely stuck. One example is Google Inbox where your primary account is Google Apps for Work without Inbox enabled. You just get a screen saying that Inbox needs to be activated and no option to switch to another account.

There is a fix, and this sometimes works for other products as well. In the URL (https://inbox.google.com/u/0/) there is a user number. Change the 0 to 1 (or maybe 2, 3, etc depending on the number of accounts) and you can get Inbox up and running again.

One case I haven't found a clean workaround for is importing a segment or custom report in Google Analytics. You just get the default profile and if it's not what you're after then there is no way to switch. What does work here is launching an incognito window, signing in to the relevant account and then using the import link. A bit painful but gets the job done.

Fight Facebook with Email

Updated on Thursday, November 12, 2015

I was a little saddened to read today that Diaspora is transitioning over to some form of community manged slow death. I joined a pod a while back and was pretty impressed with the design. It was very similar to Google+: clean, nice features, nobody home. 

I've also joined app.net. The concept here is a social network that you pay for, so the owners are aligned with the interests of the users and developers rather than advertisers and lame brands. I wish app.net well, but it's not the future. Best case (and it's not a bad one) it could be the new WELL - a community that people care enough about to pay for (I was on the WELL in the early 90's, splitting the tab with a friend so our handle was abft, account built for two). If that is the direction it goes in then simply having a slightly longer post limit than Twitter isn't really going to cut it. And cool as it might be most people aren't going to pay for a social network. 

Any attempt to displace Facebook has to solve the problem that anyone interested in sharing anything with anyone else is already using Facebook. The only platform that is in any sense comparable is email. So someone needs to make email into a social network.

This could be an interesting startup. Create some account - [email protected] - anything you send directly to that address is a post. Anyone you copy is a mention. Reply to a thread with this email address included and you're replying on the social network as well. Anyone copied on such an email gets invited to the network if they're not already.

You've got a killer viral component and an instant social network that is supported on every platform with no investment needed. Everyone has email, and everyone is a member as soon as they claim their email address or get included in a post. 

Maybe someone has tried this already and I just haven't seen it. I'm half tempted to have a crack at it myself. 

What would be more interesting would be layering a social protocol over email, and implementing that protocol by proxy on top of email providers that don't or won't support it. This creates a core social service practically out of thin air. Facebook and Twitter are the new AOL and CompuServe. There has to be a way to leverage email into a free and open alternative.

Sending email via GMail in C#/.NET using SmtpClient

Updated on Sunday, September 30, 2018

Gmail Logo

Here’s a quick code snippet that configures SmtpClient to send email using Gmail’s SMTP server:

This can be frustratingly difficult to get right so I’ll run through each setting quickly.

DeliveryMethod: Set to SmtpDeliveryMethod.Network, the alternatives are copying the email to a directory for pickup by a different application. We want to connect directly to Gmail.

UseDefaultCredentials: False, as we’ll be providing our own credentials later. Setting properties in the right order is apparently important for SmtpClient, although the Microsoft documentation doesn’t mention this. Make sure you set UseDefaultCredentials to false before setting the Credentials property.

EnableSsl: True. SSL or TLS is required.

Host: smtp.gmail.com for this example. Note that this server restricts you to sending 2,000 emails per day. There is a less restrictive option for G Suite customers (smtp-relay.gmail.com) and a more restrictive server that can only send messages to Gmail or G Suite addresses (aspmx.l.google.com).

Port: Google says to use 465 for SSL and 587 for TLS. I’ve found that 587 with EnableSSL set to true works fine.

Credentials: Your Gmail address and password in a NetworkCredential. If your account has 2 step (multi factor) authentication then this won’t work. You can generate an app password easily and use this instead of your regular password. It’s also possible to use OAuth.

In the comments below Shika Helmy suggests also setting the Timeout property to 20000.

You can now use smtp.Send() to send the email.

Because it’s likely to be your personal account and there is a 2,000 message cap on sending I’d only recommend using this for small scale projects. You don’t want to get your Gmail account blocked. For higher volume I’d look at using SendGrid or similar.

One last note - while I’ve used SmtpClient for all sorts of trivial email needs over the years the latest Microsoft documentation marks it obsolete and warns:

SmtpClient and its network of types are poorly designed, we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead

Hope this expanded article helps. I still come back here periodically to cut and paste rather than mess up the property order again...

Siriusly?

Updated on Friday, February 24, 2017

You've Unsubscribed from SIRIUS Program Updates - Please allow 4 business days to process your request.

Are you running your website on a VIC-20?

Think before you print?

Updated on Thursday, November 12, 2015

Don’t tell me to think before printing your email.

Firstly, it’s not that special. You’re lucky if I’m reading it at all. Do you really think I want a copy for posterity? Am I going to have it framed? Let’s face it, your target audience is pre-Internet execs who have their secretaries print their emails out so they can dictate a reply back later.

Secondly, do you think your sanctimonious footer comes at no cost? Using the power of randomly Googling facts each bit takes 4.6µJ and 2.8 million emails are sent every second. Assuming a 60 character nag if everyone indulged that’s over 12kW of smugness. For approximately no pages of paper saved.

And don’t get me started on lawyers. We could probably stop global warming if they’d just skip the fifteen page footer explaining how it’s somehow your fault if they send their emails to the wrong address.

Email marketing - don't shoot yourself in the foot

Updated on Friday, February 24, 2017

If you send email to customers it's important that you let them know where the email will come from and then use then use this address consistently. Using different email addresses is a recipe for getting trapped in spam filters. This is equally important for marketing and other messaging like bills and canceled flights.

I bring up flights because I'm flying to the UK later today and was planning to return on Sunday. British Airways' Cabin Crew is going on strike this weekend and my return flight has been canceled. Instead of sending a text message BA tried to notify me by email. This would have been fine if they used the address they've used for years, but instead they used a new address and a new domain. In fact in the process of canceling and re-booking I (eventually) got email from britishairways.com, my.ba.com, email.ba.com and pop3.amadeus.net.

Since I've had the same email address for twelve years now I get a fair amount of spam. I use SpamArrest to keep myself sane:

94.9% of my email is spam. Since I started using the service SpamArrest has eaten 482,494 messages for me. I'm far from alone in using white list based email filtering so if you want your message to get through transparency and consistency are the way to go.