<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1822615684631785&amp;ev=PageView&amp;noscript=1"/>

Here’s the problem — you’re hosting a Windows server running IIS on AWS, and your web app is getting hammered with requests that look like this:

 https://www.mywebsite.com/?q=%23Hcker%3Cbody%20oninput%3Djavascript%3Aalert(1)%3EHcker

These are clearly malicious. You want to block the IP easily and programatically. My website fields thousands of requests just like this daily, ever since we made it onto HackerOne’s list of apps using Google APIs that have more than 50,000 active users.

You have a few options, but I argue you only have one good option.

Various options to block an IP in AWS

  1. You might think to use AWS Security Groups, but you’ll quickly realize that Inbound Rules in AWS Security Groups can only be used to whitelist traffic, not block traffic.
  2. When you dig further into what AWS offers, you’ll come across the ability to block individual IPs, and even ranges of IPs, using a Network ACL (Network Access Control List). Specifically, you can set ALLOW and DENY rules. That’s actually a decent solution, but there are two issues: 1) If you want to do this programmatically, you’ll need to learn the AWS Network ACL API; and 2) You are limited to 20 total rules, including Inbound and Outbound. So if you have 1 Outbound rule, which is normal, and 1 default Inbound rule, you’re left with only 18 IPs or ranges that can be blocked.block IP addresses in AWS
  3. If you dig even further into what AWS offers, you’ll find that you can integrate your own third-party firewall into your EC2 environment, but this solution will be complex and expensive.
  4. If you’re using Windows Firewall, then you can block an IP address using Windows Firewall, and you can even programmatically block IPs using the Windows Firewall API. This is like a decent option, but one I’ve never tried before. The AWS documentation encourages users to use Security Groups instead of Windows Firewall, so ever since I set up Security Groups, I have disabled Windows Firewall on my production servers.
  5. After exhausting your native AWS options, you’ll start to look at what kind of blocking IIS can do natively. You’ll come across Dynamic IP restrictions, but if your web app is even close to as complex as mine, you’ll note a few things lacking.

Why IIS’s Dynamic IP Restrictions Kind of Sucks

  • It’s great to be able to stop IPs that send too many requests at once, but if you have any kind of busy web app, this will lead to false positives. What about images? Let’s say you have a page with 200 images, each of which will be a unique request. The user might get blocked after requesting this page even if you have this set to a reasonable threshold like 100.
  • Most malicious attacks involve a query string. It would be nice to apply these rules just to requests that have a query string, but no such option exists.

What is the easiest and the best solution?

My preferred method of blocking IPs is by using the IP Address and Domain Restrictions function of IIS. It requires you to install the IP and Domain Restrictions module from Server Manager, but once installed, blocking an IP is as easy as:

  1. Use the IIS user interface to navigate to the IP Address and Domain Restrictions section to block an IP address. This can be done both on the individual site level by navigating to a specific site, or on a server-wide level by navigating up a few levels to the entire server.
  2. Add an ipSecurity item to a website’s web.config file, which is the same as adding the IP to an individual site in IIS.
  3. Add an ipSecurity item to the server’s ApplicationHost.config file, which is the same as adding the IP to the whole server in IIS. This file is found under c:\windows\system32\inetsrv\config.
  4. Use the Microsoft.Web.Administration API to add new IPs easily to the block list, which essentially writes new IP addresses to ApplicationHost.config.

Using the IIS API to block IPs server-wide

To programmatically block IP addresses in IIS, use the Microsoft.Web.Administration API. However, don’t install the Nuget package, as programmer Lex Li explains. Instead, reference the DLL that’s already part of your Windows OS.

Here’s the C# code I use personally:

        public void IISBlockSingleIP(string ipAddress)
        {
            IPAddress ip;
            bool IsIPValid = IPAddress.TryParse(ipAddress, out ip);
            //IT'S VERY IMPORTANT THAT YOU VALIDATE THE IP, BECAUSE THE API WILL ACCEPT ANY TEXT AND ADD IT TO ApplicationHost.CONFIG
            //AND THIS WILL CORRUPT ApplicationHost.CONFIG AND TAKE DOWN EVERY WEBSITE ON YOUR SERVER
            if (IsIPValid)
            {

                using (ServerManager serverManager = new ServerManager())
                {
                    Configuration config = serverManager.GetApplicationHostConfiguration();

                    ConfigurationSection ipSecuritySection = config.GetSection("system.webServer/security/ipSecurity");

                    ConfigurationElementCollection ipSecurity = ipSecuritySection.GetCollection();

                    var addElement = ipSecurity.CreateElement("add");
                    addElement.SetAttributeValue("ipAddress", ipAddress);
                    addElement.SetAttributeValue("allowed", "false");
                    ipSecurity.Add(addElement);

                    serverManager.CommitChanges();
                }
            }

        }

As I’ve noted in the comments, it’s critically important to validate every IP before committing it to ApplicationHost.config, because the API will accept any junk text and add it as a DENY rule — and if a non-IP makes it in there, it will bring your whole server down.

Validate each IP address
This will bring your server down.

Again, all this code does is add a line to the ipSecurity section of ApplicationHost.config. So technically, you could manipulate the file yourself, without the Microsoft API, but since this is just a few lines of code, it’s much easier than risking corrupting the file with malformed XML.

Why bother with blocking an IP programmatically when you can just as easily do it manually through the IIS interface?

I block IPs almost weekly because they’re pounding my server with malicious requests. I detect these requests in the Application_BeginRequest method of my Global.asax file, and then I send myself an email when an IP meets certain criteria. That email then contains a link which calls the above-referenced code. So blocking an IP for me is as easy as getting an email notification and clicking a link. It’s much easier than RDPing into my web server, launching the IIS Administration tool, navigating to the right area, and adding the IP through the UI.

Why not just keep the bad IPs in a database table and check against that table from Application_BeginRequest?

That is a great idea, and also something I do, but it turns out that not every request goes through Application_BeginRequest. A malicious request like the one in red above would not go through Application_BeginRequest. A user flooding your server with these requests can easily affect server performance if the requests are allowed through, which is why I’ve outlined additional steps.

What actually happens when you block an IP?

Now that your IP is added to the block list in applicationHost.config, what does a hacker from that IP see when accessing your website? Unfortunately blocking via applicationHost.config does not block the hacker’s attempt at connecting at all. It still lets the hacker content but the hacker will see this in his web browser:

AWS hacker error message

Another thing to note is that “dangerous” requests don’t go down the same pipeline that normal requests do, and therefore “dangerous” requests circumvent the IP blocking in applicationHost.config altogether. A dangerous request will still be responded to with this IIS error:

System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value
was detected from the client (<). at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at
System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

As an example, here’s a “dangerous” request you can try now on the GMass website: http://www.gmass.co/booya/build_now%3Csvg/onload=alert(1337)%3E

So, even if your IP was blocked, you would still be able to access that dangerous URL and you would still get the same message.

See why GMass has 300k+ users and 7,500+ 5-star reviews


Email marketing. Cold email. Mail merge. Avoid the spam folder. Easy to learn and use. All inside Gmail.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


I’m an email expert. Here’s what I think.

Every couple of years, a new-fangled email service launches and generates a lot of buzz on Twitter and in the tech press. The latest app is called Hey, made by Basecamp, which is based in Chicago, where I lived for 15 years. If you follow the email ecosystem, you might be familiar with Superhuman, another email software startup that has garnered a lot of attention over the last few years for also re-inventing the email experience.

The skinny on Hey

  • It’s a web-based email system.
  • It only works with @hey.com email addresses. The company has started onboarding companies who want to move their team’s email to Hey, but it’s not widely available yet.
  • It’s invite-only for now.
  • It costs $99/yr or more if you want a two or three-letter username @hey.com.
  • About 100,000 people have requested access, according to Jason Fried.
  • It has some neat features like blocking open-tracking pixels by default (bad for guys like me) and being able to see all of your attachments sent from everyone in one place. Its screener makes you apply a Yes/No to everyone that’s emailing you for the first time, which then determines where future emails are routed. It features an “Imbox” instead of an Inbox, and although plenty of people are annoyed by this, Jason Fried and company insist that itsnotatypo.com.

Will Hey become wildly popular, displacing Gmail as the #1 email service for entrepreneurs and startups?

I doubt it. Hey will likely succeed as a niche email tool and a moneymaker for Basecamp, Inc., but it’s unlikely to be a dominant force in the consumer or business email market.

People love to hate email, so whenever a new email app arrives onto the scene, it feels exciting. I tried Superhuman last year but quickly switched back to Gmail. I’m a special case, though, because I use Gmail in a way that nobody else in the world uses it — I use it to manage every aspect of my company. Every time a new user signs up for GMass, a notification goes into a special Label. Every time a user launches a campaign, a notification goes into a special Label. Why do I do this? So that when I’m handling a support issue for a user, I can search for any user by their email, inside my Gmail account, and immediately pull up a history of everything they’ve done. Gmail’s exceptional search capabilities make this all possible.

Additionally, once I was turned onto Gmail’s keyboard shortcuts, the productivity advantage of Superhuman disappeared.

The biggest drawback of using any email client outside of Gmail is that it will never have the vast ecosystem of third-party developers building added functionality for it. There are already hints that Hey will be a mostly closed ecosystem, given that you can neither relay email via SMTP to a hey.com address or retrieve your hey.com messages over POP or IMAP. Perhaps there will eventually be an API. Still, unless alternative solutions like Hey and Superhuman are willing to natively add demographic information to contacts, help you turn emails into to-do items, and tell you how to write a message to a particular person, they’ll never be able to compete on features. Other Gmail extensions add email tracking and auto follow-ups, both of which are useful to a sender of emails.

Since Hey is decidedly anti-spying, it would create quite the kerfuffle if it were to add pixel-based open tracking to the service as a user of Hey but then tout the blocking of said pixels on the receiving end as a feature and more-so a product mantra. Superhuman fell victim to this when a blogger “discovered” that by default it includes the tracking pixel in all sent emails, although I never understood why this was such a big deal. If I’m a user of any email client, I’d love to know when my emails are opened.

For some reason, privacy advocates get far more riled up over marketers knowing you’ve opened an email than knowing every move you make on every website, which is fairly commonplace if you’ve ever logged into a website or if you’ve ever clicked on a Facebook ad and then browsed the advertiser’s site.

Additionally, Gmail already natively includes scheduling, snoozing, and smart text suggestions, not to mention the best email search function on the planet. Given that Gmail is made by Google, and Google’s almost-trillion-dollar business is based mostly on its ability to accurately dole out search results faster than you can compose your next thought, it’s unlikely that any alternative email service will be able to provide a search function that’s better than Gmail’s native search function.

About that Screener

Hey’s primary method for sorting out email that you want from email that you don’t want is the Screener, a place where all first time emailers end up, and you, as the user, have to choose YES or NO to each sender. It’s a simple way of deciding what’s spam and what’s not.

There’s one major problem with this approach. It requires a LOT of manual work. In the beginning, as @hey.com addresses are new, users won’t mind this. In fact, on Twitter, new Hey users delight at getting new email just like they did when email first became commonplace in the late 90s with AOL Mail. Over time though, as you use your new @hey.com address more and more, working your way through the Screener will become as tiresome as trying to achieve Inbox Zero with a “regular” email platform.

Here is where Gmail is far superior. Most people have never heard of TensorFlow, an open source machine learning AI platform developed by Google that Gmail is now using to block spam. Can Hey match this? Possibly, but as smart as Basecamp’s engineers are, the kind of computer science expertise required to build AI-based systems goes far beyond being able to create beautiful UIs for project management systems and email platforms.

How about Hey vs. G Suite and Docs, Sheets, Calendar, YouTube, and more?

If you host your company’s email on G Suite, then you’re probably also using Google’s Calendar, Google Docs, and a bunch of other Google services like YouTube and Meet are likely tied to your G Suite account address. Fortunately for these users, it is possible to switch to Hey for email, but keep the rest of your G Suite services. This is due to the nature of how email works, and the magical DNS MX record that controls it all. If my domain, mywidgets.com, wants to use Hey for email but keep my G Suite services alive, all I have to do is change the MX record for mywidgets.com to point to Hey, and now I can host all of my @mywidgets.com email accounts at Hey but still log into all of my  G Suite services using the same @mywidgets.com accounts created on G Suite. The only difference is that email messages sent to @mywidgets.com will no longer appear in Gmail.

The drawback of this hybrid approach is that you’ll be forced to pay the monthly fee for G Suite and for Hey, and that “double” cost is unlikely to be palatable to most businesses. The only sustainable solution to this would be if Google uncoupled the Gmail service from the rest of the G Suite services, and that’s just not going to happen.

The key difference between Hey and Superhuman

Hey is both an email client, via its web-based app, and an email hosting service. As a user of hey, you have an @hey.com email address which you then manage through the Hey website or app.

Superhuman is only an email client. It works on top of other services like Gmail. With Superhuman, you keep your @gmail.com or G Suite account, and you use Superhuman to send and receive emails from those same addresses. With Superhuman, you can also use the Gmail app or web-based client to send/receive. With Hey, you are locked into the Hey website or app to manage your @hey.com address.

The advantage of Hey’s approach is they can offer users a new beginning, with a new email address, for people that are sick of the volume of email they receive at their current address. Of course, you can also solve that problem by creating a new @gmail.com address — but you’re not likely to get [email protected], whereas you probably can get [email protected] for a price.

The disadvantage of Hey’s approach is that new beginnings are not easy. Because you can’t just slip Hey’s email client over your existing email client, it’s not nearly as easy to switch to it. Establishing a new email address that will become your primary email address is hard. You have to inform everyone you’re in touch with that you have a new email address, hope they update their contacts, and further hope they never reply to an old thread with your old email address. You could forward your old email address to your new @hey.com address, but that’s clunky and can break threads.

How desirable is having a hey.com email address?

For me, the litmus test of an awesome email address is whether I can utter my email address to a customer service rep over the phone without any ambiguity as to its spelling.

Let’s say I had the account [email protected] (I don’t), and I say over the phone, “My email is me at hey dot com.” That’s still ambiguous. Is it “hey” dot com, or is it “hay” dot com?

“Sorry, was that ‘hey’ or ‘hi’?” I foresee someone asking.

The only way for this issue to become moot would be if the Hey email service became as ubiquitous as Gmail or Yahoo Mail, and even if that happens, it will take time.

Hey’s battle with Apple

Hey is currently in a fight with Apple because Apple is refusing to publish the latest version of the Hey app unless they include in-app purchase functionality in the app (see update below). As a subscription service, Hey charges a minimum of $99/yr, and Apple is arguing that the app must offer in-app purchases to be compliant with App store policies, and so that Apple can take its 30% cut.

It’s hard to feel bad for Hey, though, because although I believe them when they say this isn’t a PR stunt, the amount of publicity this battle is generating is insane. Every tech site you can think of is covering the story from TechCrunch to The Verge to protocol. Furthermore, Superhuman had the same issue, did comply with Apple’s requirements, and is happy with the results.

I, too, have struggled with similar issues with both the Chrome extension store and the Gmail Add-on Marketplace, the two app marketplaces relevant to my business. I’ve argued that my app should be allowed to do X and look like Y, only to be told No, even when other apps did the same thing. I’ve managed to prevail over Google by using sound logic and persistence. At least with Hey’s fight against Apple over the App Store policies, there’s a point of contact and guaranteed communication with the app review team. That’s far more than a Chrome extension developer gets. Finding out why your extension has suddenly been delisted is like wandering around a pitch dark room with no walls.

I predict that Hey’s place in the App Store will eventually be settled one way or another, even if they succumb to the Apple tax, but I doubt the way they’re flaming Apple all over social media is helping their cause. Apple is too big to be swayed by a few haters, and even though there might be 5,000 haters siding with Hey, that won’t be enough.

UPDATE: Apparently, over the weekend, Apple did capitulate and approved the version of the app with the bug fixes, and the fight has now struck a more conciliatory tone. The folks at Basecamp are surely rejoicing, not only because their app is approved, but because they’ve just earned another round of major press coverage from every. publication. on. Earth.

Revenue Predictions for Hey

According to Jason Fried, about 100,000 people have requested invites, and supposedly after this week, all 100,000 people will have had the opportunity to sign up. I’m going to assume that 75% of the people that get an invitation code will use it and sign up. That’s pretty high, but given the high engagement of users on Twitter and the massive press coverage, it’s reasonable. Every new user also gets a few invites to hand out, so let’s say at the end of this week, a total of 80,000 people have signed up for the free trial.

For free trial SaaS products that don’t collect a credit card upfront, a 10% conversion from free to paid is typical. Hey is going to do a lot better than that, given the excitement around its launch. Let’s double that to 20%. So at the end of  the 14 days following the end of this week, I predict that 20% of 80,000 users will have signed up for the basic $99/yr service, which amounts to 16,000 paying users at about $100/yr, which equals $1.6M in Annual Recurring Revenue (ARR). Not bad.

Do I want Hey to succeed?

Somewhat. I’m a bootstrapped entrepreneur, and so are Jason Fried and David Heinemeier Hansson, the two faces of Hey, so I feel a kinship with them. I admittedly also feel threatened every time a Gmail alternative is launched because my whole career is based on people using Gmail. Whenever an alternative surfaces, my target market shrinks ever so slightly. So take this analysis with a grain of salt since I’m naturally biased against Gmail alternatives like Superhuman and Hey.

Invite-only? You’ve already lost me.

I loathe invite-only systems, but for some reason, every shiny new email product starts as invite-only. Gmail started as invite-only in 2004. Superhuman is still invite-only. And now Hey is invite-only until July. I’m immediately turned off by invite-only systems, but I recognize that I’m a rare soul. Why does invite-only bother me so much?

  • I see it as a self-indulgent attempt to drum up buzz when the actual product is not in limited supply
  • I feel like an ass explaining that I have access to something that you don’t
  • It’s usually a sign that a product hasn’t been tested enough to be released to the masses

Now some products are truly in limited supply, and so limiting access based on supply is key to survival. Like diamonds. Just kidding.

This kind of product launch reminds me too much of other life experiences where the product uses the customer to market themselves rather than the product. It’s like a bouncer forcing a line to form outside a popular nightclub when there’s actually plenty of room inside.

While I’m on my soapbox, this also annoys me. A veiled attempt at being transparent with an interesting story of how they acquired the hey.com domain name without revealing the one thing that actually matters — the price. So they had some back and forth with the seller over a period of time, and another buyer entered the picture? That’s the story of EVERY SINGLE high-value domain purchase.

What do I want to happen?

I hope that when alternative email apps like Superhuman and Hey come to market, it forces everyone else in the email ecosystem, including Gmail, to up their game. Gmail has struggled recently as an innovator. Since it implemented strict new security protocols, put in place for its third-party developers, it has essentially squashed innovation from third parties by making it cost prohibitive. What makes Gmail remarkable, and what makes it unlikely that Superhuman or Hey will ever be able to catch up, is its vast library of extensions and add-ons. Gmail itself, as evidenced by its blog, rarely adds new native features.

The future of Hey

It’s likely that Hey will eventually offer an API, just like Basecamp does, and who knows — maybe afterwards, a certain someone will write a Chrome extension for Hey to make it possible to send email campaigns through Hey. Whoa! Actually, that’s unlikely. Hey’s native feature-set seems to be fairly anti-email-marketing, and while I haven’t seen any documentation as to how many emails a single @hey.com account can send in a 24-hour period, I’m almost positive they will limit the service so that it can’t be used to send even low-volume campaigns, like Gmail and Outlook currently can.

Disclaimer: I haven’t tried Hey. It’s invite-only, and I don’t have an invite.

See why GMass has 300k+ users and 7,500+ 5-star reviews


Email marketing. Cold email. Mail merge. Avoid the spam folder. Easy to learn and use. All inside Gmail.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


You’re probably using Google Sheets to send most (if not all) of your campaigns in GMass. So it only makes sense that you’d want to get campaign data back into those sheets.

There are a few different methods for getting your campaign data into Google Sheets with GMass. In this article we’ll cover those methods and walk you through their pros and cons.

Method #1: GMass’s Automatic Google Sheet Updating

With GMass, you can set your Google Sheet to automatically update as your campaign sends. Opens, clicks, replies, and bounces will update columns in your Google Sheet so that you can easily see how each person has engaged with your mail merge or cold email campaign.

This is a popular feature with GMass users — in fact, we’ve even had people tell us they switched to GMass for this feature alone.

Go ahead and stare!

A Google Sheet updating live with campaign data.

You can use this data to further refine follow-up campaigns by filtering on the columns that have values equal to X.

Activating automatic Google Sheet updating for a campaign

In order for your Sheet to be updated, there are two basic steps you must follow:

  1. Check the box to update your Sheet at the time you connect to your Google Sheet inside Gmail.
  2. Grant GMass permission to write to your Google Sheet. When you first sign up for an account, GMass does not ask for the permissions necessary to write to your Sheet; at sign-up it only asks for permission to read from your Sheet. The first time you check the above-shown box, a popup will ask you to grant GMass the additional permissions:

    The first time you check the box to update a Sheet, you’ll get this popup.

If you don’t grant the necessary permissions before you launch your campaign, you will hear from us! You will eventually get an email notification requesting permission, but this will be after GMass has already tried and failed to update at least one cell in your Sheet. That email notification will look like this:

Make sure there are blank columns

If your Sheet looks like this and doesn’t have any available columns, the reporting metrics won’t be written to your Sheet.

This Sheet needs more columns for updating to work.

If your Sheet does look like this, just right-click on the right-most column to add a few more columns. You should have at least four empty columns after your last column of data. To future-proof your spreadsheet, in case we add more data to this feature (like “blocks” for example), add even more blank columns. By default, when you first create a new Sheet, columns A-Z exist, giving you a total of 26 columns. Generally, the only reason you would need to eliminate some columns entirely is to reduce the overall size of your Sheet, but that only becomes necessary if you have more than 100,000 rows of data.

GMass will write the column headings to the first row as soon as the first event takes place. For example, on the first “open,” GMass will label the column “OPENED” and mark the appropriate row with an X to indicate the open. You do not need to add the column headings; you just need to ensure there are blank columns available for use.

Once reporting events start to register on your Sheet, do not move or delete the reporting columns. Doing so could cause your other columns of data to get overwritten by Xs if GMass thinks that a column containing your actual merge data is a reporting column that we created automatically. That’s because GMass caches the structure of your Sheet and “memorizes” which columns are where in order to optimize computing resources, so if you suddenly alter the columns while it’s updating your Sheet, that will throw the process off until it caches your Sheet again during the next hour.

Troubleshooting GMass Google Sheet Updating

If your Sheet isn’t updating the way you expect:

  1. Make sure you’ve given GMass permission to edit your Google Sheets (see above).
  2. If the Sheet has been shared with your Google account by someone else, do you have EDIT permissions? If you only have READ permissions, then GMass won’t be able to update it, even if you’ve given GMass permission to update your Sheets, because the read-only permission on the shared Sheet takes precedence.
  3. Make sure you have enough blank columns to the right of your data.
  4. Make sure you checked the “Update Sheet with reporting data…” box when connecting to the Sheet. If you forget to to this and then launch a campaign, there’s currently no way to change it.

Method #2: Exporting Data to a Google Sheet

GMass’s web-based campaign reports offers a way for you to export full campaign data to a Google Sheet.

In the web-based report for your campaign, click on the download icon next to “Main Campaign Report”. Then choose “Export to Google Sheets”.

Export your full campaign report to Google Sheets

GMass will then take a moment to export to Google Sheets and let you know the name of the sheet.

Sheet export is done

Now you can check out your results in Google Sheets.

Data in Google Sheets

And if you want to merge this data with the original Google Sheet you used for your campaign, you can copy and paste it in. Just make sure both Sheets are sorted the same way so the right data goes in the right spot. (For instance, sort both by email address, then paste in the new data.)

You can also export individual stat reports to Google Sheets

Want to export the results from an individual stat to Google Sheets? You can do that in both the web-based campaign report and from the GMass dashboard reports.

In the web-based campaign report, click on the download icon in any statistic box, then choose “Export to Google Sheets”.

Export to Google Sheet from web-based report

In the dashboard, click on the number for any stat in a campaign. Then click the “Download” link at the top of the right fly-out panel. (Note: This method also works on the web-based report; when you click on stats in that report you’ll also get the right panel with the download option.)

Export from dashboard

In both cases, GMass will export your Google Sheet (and tell you the name of the Sheet file).

Exported to Google Sheet

You can now open that report in Google Sheets.

Sheets data exported

Method #3: Download Campaign Data as a CSV or Excel File, Then Import to Google Sheets

While this method doesn’t make sense — since you can just export your data directly to Google Sheets — you could download your campaign data as a CSV or Excel file, then import to Google Sheets.

If you want to use this method, go to the web-based campaign report, click the download icon in the Main Campaign Report section, then choose the CSV or Excel option.

Sheet data download options

Once GMass generates the download, right click on the file to save it.

Save file

Then head into Google Sheets. Open a blank sheet. Go to the File menu and choose Import.

Importing to Google Sheets

Choose “Upload” then pick the file on your computer. Google’s default options to “Replace spreadsheet” and “Detect automatically” are correct. Click “Import Data.”

Import options in Google Sheets

Your data is now in your Google Sheet.

Data imported successfully

Again, there’s no particularly good reason to get your data into Google Sheets this way. But it is an option.

Updating Google Sheets with Campaign Data: Pros and Cons of the Different Methods

We’ve now covered the three methods for getting your campaign data into Google Sheets. Here are the pros and cons of the methods as you’re choosing between them.

GMass automatically updating Google Sheet

Pros:

  • Requires no manual work on your part
  • Unifies your campaign into a sole Google Sheet

Cons:

  • Does not show you numbers for stats like opens and clicks, just shows an “X” whether someone opens the email once, twice, or 17 times
  • If you use one Google Sheet for multiple campaigns, this method stops making sense
  • You may not want your list spreadsheets to contain data; you want to keep the two separate

Exporting campaign reports to Google Sheets

Pros:

  • Numbers for stats like opens and clicks (so you’d see how many times someone opened)
  • Your full list information and campaign data is all in one place
  • If you’re using one Google Sheet for multiple campaigns this is a better option than updating the Sheet

Cons:

  • Requires manual work on your part to export this file, then more manual work if you want to combine it with your original campaign spreadsheet
  • You now have two Google Sheets for the campaign rather than everything unified in one spot

Exporting campaign reports as CSV or Excel file then importing to Google Sheets

Pros:

  • Only pro is if you want to edit the data in another spreadsheet app before importing to Google Sheets

Cons:

  • Adds lots and lots of unnecessary steps

Whatever you choose, we hope you’ll get a lot of benefit out of bringing your campaign reports into Google Sheets — where you can run deep analyses on your campaigns.

See why GMass has 300k+ users and 7,500+ 5-star reviews


Email marketing. Cold email. Mail merge. Avoid the spam folder. Easy to learn and use. All inside Gmail.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


If you’re a cold emailer using any cold email platform other than mine, you’re likely subject to limits in the hundreds of emails per day. For most people, that allowance of a few hundred emails/day is enough, since it’s quite hard to find more than even 100 targeted prospects’ email addresses per day, where your message is relevant enough to the prospect that it doesn’t seem spammy.

But, let’s say you’re just that good at finding leads and capturing email addresses. Let’s go crazy here for a second and say you’ve fine-tuned a process that brings in 5,000 new email leads per day, and every day, you want to email these 5,000 email addresses and set a follow-up sequence that sends every few days until they reply. Now you’re in deep, because not only do 5,000 new email messages need to send every day, but once the follow-up schedules start to kick in, you’ll actually be sending more than 5,000 emails/day, when you take into account the original message volume and the follow-up email volume.

So, given G Suite’s limits of 2,000 emails/day and most cold email platforms’ own limits, how can you accomplish this?

You could set up multiple G Suite accounts and eventually send 2,000 emails per day per account. However, as years of experience has shown, it doesn’t always work so smoothly, and often times G Suite caps an account’s sending volume at a level much lower than 2,000 emails/day. This can work for some users but won’t work for most.

Last year, I invented a way to integrate an SMTP service into a high volume cold email process such that you can send as many emails as you want through an SMTP server like SendGrid, while preserving the ability to detect replies and send follow-up emails to non-responders. We do this through a little bit of inventiveness in how we relay the emails through an SMTP and sync the data back to your G Suite account.

Recent High Volume Cold Email Campaigns

Here is a sampling of recent large cold email campaigns sent by our platform in the last few weeks. Included are the number of auto follow-up stages and the open and reply rates. Some of these were distributed in daily batches via Gmail and some were sent via a third party SMTP relay.

This cold email campaign data is updated daily.

From AddressSubjectFollow-up StagesRecipientsOpen RateRepliesDate
[email protected]I_______w D________n - I_______e M______e12,56589.7%2510/02/24
[email protected]B___d C___________n | L____y E_______e B___d x {________}33,87080.5%1,43210/03/24
[email protected]T____g t_e O__E W__h I_C33,26070.1%75010/01/24
[email protected]{___________, R____e S______g C___s a_d B___t Q______? L___s C____.33,65170.0%2210/01/24
[email protected]O_____r 16 - H__e y_u c_n j__n R__. V_n D___e a_d S_____l G____, B__l F____s22,64160.0%6510/05/24
[email protected]R_____t f_r Q___e14,00556.7%2810/04/24
[email protected]C_n y_u h__p me {___________?22,64153.1%2210/01/24
[email protected]W______g t_e V_______________l d_____? G_t o_r v___e h___d & g_t t_____s f_r H___s N____l G__a 1______412,30152.0%310/02/24
[email protected]T_e B__t T____l B__s F_r 2__512,08651.0%1010/01/24
[email protected]P_____r O_________y – W_____n27,49449.0%2010/03/24
[email protected]B___d C___________n | L____y E________e B___d x33,49346.3%58010/03/24
[email protected]R___y f_r t_e H_______? F______s f_r t_e f___t 5 s______s 👀22,56844.0%6210/02/24
[email protected]M_____g to d_____s F_________g f_r {______y N___} in 2__523,23143.9%20610/01/24
[email protected]R___y to S_____t Y__r M_____l W_____g N___s12,73242.7%210/01/24
[email protected]I_________n r______d f_r W____r s______s q____s12,84741.9%11809/30/24
[email protected]S___r P___l C______g24,68140.8%4310/04/24
[email protected]S_____g to t_e P__________? O___r l___l p_____t m_____s e____y w__h H____y24,25240.3%45110/01/24
[email protected]J__t r______g o_t to s_e if y_u n__d a_y s_____t12,88439.9%010/03/24
[email protected]J__t r______g o_t to s_e if y_u n__d a_y s_____t110,54938.2%210/01/24
[email protected]A S______l S_____e Y_u M_y N_t H__e C_________…27,49835.6%3410/03/24

Steps to sending high volume cold email:

  1. Set up your G Suite account, and connect it to GMass.
  2. Set up a SendGrid account or any other SMTP service and subscribe based on the daily volume of emails you want to send. When determining daily volume, take into account the original message plus follow-up emails that need to go out per day.
  3. Connect SendGrid, or your alternate SMTP service to GMass.
  4. When you launch your cold email campaign in GMass, set the SMTP option instead of Gmail.
  5. Configure your auto follow-ups.
  6. Hit the GMass button to launch the campaign.

What happens next?

Even though your emails are being sent by SendGrid, you’ll still see a copy of each individual email in the Sent folder of Gmail. When someone replies, the reply will still be threaded to the same conversation as the email in the Sent folder. And if someone doesn’t reply, and a follow-up email sends automatically in a few days, that follow-up will also be threaded to the same email conversation.

But wait, I’m not technical enough to set up SendGrid!

If setting up your own SMTP service is too complicated, and you don’t want to bother with the implications of DNS records, SPF, DKIM, DMARC, and all the subtleties that are recommended for deliverability, you have a couple of options:

  1. Sometimes we allow users to use our SMTP service — but typically for cold email that isn’t opt-in, we don’t.
  2. There’s a fiverr gig these days where someone will help you configure a SendGrid account for use with GMass.
  3. You sign up for SendGrid and subscribe, and then send us your credentials and we’ll link GMass to SendGrid for you.

By the way, if you’re an advanced web developer and this all sounds to easy for you, you may want to read my technical review of SendGrid to take a look under the hood and see if you want to customize your SMTP process. That review is written specifically for advanced web developers. 

How high is our volume?

When you’re shopping different cold email platforms, ask them how much email they send. Then check our real-time counter for how much email we’ve sent. We’ve sent over 1 billion emails through Gmail and G Suite accounts. Not all of them were cold email campaigns, but a lot of them were.

Ready to transform Gmail into an email marketing/cold email/mail merge tool?


Only GMass packs every email app into one tool — and brings it all into Gmail for you. Better emails. Tons of power. Easy to use.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


Looking to set up your Gmail SMTP settings?

In this article, I’ll detail everything you need to know about configuring your Gmail SMTP settings.

This step-by-step guide will show you how to set up SMTP settings, and I’ll even explain what SMTP is used for in Gmail. I’ll also highlight how to set up your Gmail POP and IMAP settings to help you receive incoming mails.

Gmail SMTP Settings: Table of Contents:

(Click on a link below to jump to a specific section.)

If you only want the Gmail SMTP settings without any additional information, here you go:

Gmail SMTP Settings

SMTP Server Address: smtp.gmail.com

Use Authentication: yes

Secure Connection: TLS/SSL based on your mail client/website SMTP plugin

SMTP Username: your Gmail account ([email protected])

SMTP Password: your Gmail password

Gmail SMTP port: 465 (SSL) or 587 (TLS)

Go back to contents

For the rest of us, let’s get started!

How to Configure Gmail SMTP Settings

There are three ways you can set up Google’s SMTP server to use it for sending emails:

  • Use the Google Workspace (formerly G Suite) SMTP relay service.
  • Use Gmail’s SMTP server (This is what we’ll be covering.)
  • Use the Restricted Gmail SMTP server.

Note: If you don’t know what SMTP is, you can skip ahead to learn what it is and how it works before setting up SMTP in Gmail.

Why Should You Use the Gmail SMTP Server Method?

Gmail’s SMTP server method is the most accessible one out of the three — which is precisely why we’re covering this method.

With the Gmail SMTP service, you won’t have to worry about spending on a subscription plan.

Plus, the Google SMTP server setting won’t restrict your emails to people using your organization’s IP address. It lets you send mail to anyone within or outside your organization — you only need to set up the SMTP authentication with your Gmail inbox ID and password.

This method also provides the same level of security as the Google Workspace method.

Additionally, it lets you forward emails through a Gmail alias if you’ve set one up.

What is a Gmail Alias?

A Gmail alias is a forwarding address that lets you disguise your personal email address.

For example, [email protected] could be an alias for [email protected] to receive queries about their business. It allows you to send Gmail messages from your business ID and even test emails to yourself. Most importantly, it helps you keep your personal Gmail address private.

We can even help you set up your Gmail alias so you don’t hurt deliverability.

Now let’s get started…

The Gmail SMTP Server Method

Note: Before configuring Google’s SMTP server, you need to follow these steps if you have two-step verification enabled on your Google email account:

a. How to Set Up App Passwords

If you use 2-step verification on your Google account and your mail client doesn’t support verification codes, you’ll have to enable App Passwords before configuring the Google SMTP server settings.

Why should you do this?
Some secure apps can be blocked from accessing your mail account due to two-step verification. An app specific password allows the blocked app or device to access your mail account.

If you don’t have two factor authentication enabled, you can skip the instructions given below.

Here’s a quick tutorial on how to create an app specific password:

1. Go to your Google Account and choose Security on the left panel.

security

2. On the Signing in to Google tab, select App Passwords.

app passwords

If you don’t see this option, it might mean that:

  1. Two-step verification is not set up for your Google account.
  2. Two-step verification is set up for security keys only.
  3. Your account is used through work, school, or another organization.
  4. You’ve turned on Advanced Protection for your account.

3. Click on Select app and pick the app you’re using.

app passwords tab

4. Click Select device and choose the device you’re using.

select device

5. Click on Generate.

generate button

6. Follow the instructions to enter the App Password.

The App Password is the 16-character code in the yellow bar on your device.

app password bar

7. Click on Done.

Note: You won’t have to remember your App Password since you’ll probably use it just once to connect your account to the app.

b. How to Add Server Settings in Gmail

After connecting your Google account to the app, navigate to the outgoing email message server settings page on your email client, and enter the Gmail SMTP server settings below.

Here are the account settings you need to configure SMTP in Gmail:

SMTP Outgoing Mail Server: smtp.gmail.com
Use Authentication: yes
Secure Connection: TLS/SSL based on your mail client/website SMTP plugin
Gmail SMTP Username: your full Gmail address ([email protected])
Gmail SMTP Password: your Gmail password
Gmail SMTP port: 465 (SMTP SSL) or 587 (SMTP TLS)

Note: SMTP authentication highlights that the mail client has permission to relay emails through the Gmail server. In some cases, you’ll need to authenticate your domain name, which will help prevent your bulk emails from being labeled as suspicious emails.

The process to configure the SMTP server setting depends on your email client.
For example, if you use Microsoft Outlook, you can follow the steps I’ve covered here to configure the SMTP settings.

Go back to contents

Since SMTP is only used to send outgoing mail, you need a way to fetch incoming mail.

To receive incoming mail on your mail app, you need to set up an incoming mail message server using Gmail POP or IMAP protocols.

How to Set Up POP and IMAP Gmail Settings

Here’s how you can set up POP or IMAP settings for Gmail on your mail application:

A. Setting Up IMAP

To set up an IMAP mail message server, follow this tutorial:

1. First, log in to the Gmail Google App and click on Settings in the top right.

settings icon

2. Then, click on Settings and go to the Forwarding and POP/IMAP tab.

forwarding

3. In the IMAP Access section, click on Enable IMAP and then Save Changes.

enable imap

4. Now, log in to your third-party email client and enter these settings in the Incoming mail message server/IMAP section:

Incoming Mail Server (IMAP): imap.gmail.com
Requires SSL: Yes
Port: 993
Display Name: your name
Username: your Gmail account ([email protected])
Password: your Gmail password

B. Setting Up POP

Follow the tutorial below to set up a mail message server using POP:

1. Perform steps 1 and 2 as mentioned in the IMAP section above.

2. In the POP Download section, click on Enable POP for all mail or Enable POP for mail that arrives from now on.

Enable POP for all mail

3. Then, click on Save Changes.

save changes

4. Now, login to your third-party email client and enter these settings in the POP/Incoming mail message server section:

Incoming Mail Server (POP): pop.gmail.com
Requires SSL: yes
Port: 995
Server timeouts: more than 1 minute (5 minutes is recommended)
Display Name: your name
Username: your Gmail account ([email protected])
Password: your Gmail password

Go back to contents

Now that we’ve covered how to set up SMTP, IMAP, and POP, let’s see what these email protocols are and what they do.

SMTP, POP, and IMAP FAQs

In this FAQ section, I’ll explain what SMTP, POP, and IMAP are and answer some related FAQs.

1. What Is SMTP?

The Simple Mail Transfer Protocol (SMTP) is used to send mail from one email server to another. SMTP is what’s used by most email servers to exchange emails.

It uses a process known as store and forward, which helps you move your emails from an outgoing server to an incoming one.

The SMTP connection also works with a Mail Transfer Agent (MTA) to send emails to the right inbox. However, SMTP can’t transmit attachments — it can only send text.

You can use the Multipurpose Internet Mail Extension (MIME) protocol as a workaround for this. MIME encodes all non-text data into text before sending the email through SMTP.

2. Why Do You Need to Set Up SMTP Settings in Gmail?

SMTP settings are needed if you want to:

  • Send transactional emails directly from your website through Google’s server.
  • Set up an SMTP plugin, such as the Gmail SMTP plugin, to send WordPress emails.
  • Configure Gmail on an external client such as Microsoft Outlook or Thunderbird.

SMTP allows your website or webmail client to communicate with the Gmail Google App and ensures that your email process works the way you want.

For instance, setting up SMTP in WordPress will enable you to send emails via the Gmail API — which is more reliable than WordPress’s default PHP mailing method, which uses PHPmailer.

What is an API?
An API (Application Programming Interface) allows two applications to communicate with each other. In the above case, the Gmail API lets you send Gmail messages and transactional emails directly from your WordPress website.

3. Why Shouldn’t You Use the SMTP Relay Service and Restricted Gmail SMTP Server Methods?

The relay service method can only be used by Google Workspace users who pay for a monthly subscription.

The Restricted Gmail Server method only allows you to send emails to another Google Workspace or Gmail email address.

Read more about SMTP in my in-depth guide here. 

4. What Are POP and IMAP?

Since SMTP is only used to send outgoing emails from your client, you need a way to receive incoming emails, right?
You can set up an incoming mail message server to receive emails using POP or IMAP.

Here’s a quick look at how these two protocols work:

A. POP

The Post Office Protocol (POP) is used to receive incoming emails. Its latest version is POP3.

It’s ideal for personal computer users as it allows you to download emails to a local device whenever you want to check your mail. This way, you can check emails even when you’re offline!

B. IMAP

IMAP or the Internet Message Access Protocol is commonly used to receive incoming emails.

IMAP saves all of its emails on a server, unlike POP3.

As a result, whenever you need to check emails, your mail client contacts the server and allows you to access your email from any device with an internet connection.

And since it’s cloud-based, IMAP is considered a faster and more efficient alternative to POP3.

5. SMTP vs. POP and IMAP

Are all these protocols confusing you?
Don’t worry! It’s very simple.

POP and IMAP are protocols used to receive incoming emails, while SMTP is a protocol that helps you send outgoing emails.

5. Do you need to use Gmail SMTP settings with GMass?

You do not need to enter the Gmail SMTP settings as a separate SMTP server in GMass. In other words, don’t do this…

By default, GMass sends through Gmail’s servers. So adding the Gmail SMTP settings in is redundant.

If you are looking to use a third-party SMTP service with GMass (which allows you to break Gmail’s limits), there are plenty of other SMTP options that will work great.

Go back to contents

Gmail SMTP Settings: Wrapping Up

Configuring SMTP settings in your Gmail inbox doesn’t have to be complicated.

As Gmail is one of the most accessible email clients to use, you can finish its SMTP setup in no time. Just follow the instructions I’ve covered here, and you’ll be able to configure Gmail SMTP, POP, and IMAP account settings with ease.

And if you’re looking for a way to send cold emails, mail merges, and other mass emails through your Gmail account, have a look at GMass.

It’s an email marketing platform that works inside of Gmail. More than 300,000 people are using it to easily send high-level campaigns through Gmail.

It’s free to try (sending up to 50 emails per day during your trial) and there’s no credit card or even form required to try it out. You can get rolling by downloading the Chrome extension and you’ll be up and running in a matter of minutes.

Email marketing, cold email, and mail merge inside Gmail


Send incredible emails & automations and avoid the spam folder — all in one powerful but easy-to-learn tool


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


It seems silly. You’re used to personalizing your cold email campaign’s Subject. You’re used to personalizing its Message. You’re used to starting off your email with “Dear {FirstName}.” The thought of personalizing the “To:” header field might sound unnecessary, because obviously only the email address of the one person who is the recipient of the message should be in the “To:” field. But should anything else be there?

For the meticulous, detail-oriented sender of cold email, the answer is a resounding “yes” — they want to ensure the recipient’s first and last name are also present in the “To” field.

Cold Email To Header: The difference with and without

Here’s the difference, visually:

unpersonalized Quora TO header
Unpersonalized TO header from Quora

vs.

personalized LinkedIn TO header
Personalized TO header from LinkedIn

Even worse is when emailers treat the email address as if it’s the same as the person’s name:

unpersonalized Wall Street Journal TO header
Unpersonalized TO header from The Wall Street Journal, where the name is the same as the email address

But this is one of those advanced cold email tactics that isn’t just about aesthetics, either.

There is some anecdotal evidence (see below) that claims that when the name appears in the To field, it has a better chance to avoid spam filters and land in the Inbox. Why? Because when you send a normal person-to-person email, the name of the recipient is usually in the To field alongside the email address.

Get the name in the To field when manually pasting addresses

If you’re manually pasting addresses into the Gmail Compose window (not using a Google Sheet as your list source), then you’ll notice that after you paste in the addresses, any addresses you already have saved as a Google Contact will automatically be converted to show the first-and-last name.

If the first/last name shows in the To field when you’re composing your campaign, then that same name/email will be used when you click the GMass button to send the individual emails to the recipients.

If the first/last name isn’t already showing in the To field after you’ve pasted in addresses, that means that the address isn’t saved as a Google Contact. But that’s not an issue, because you can manually edit the address to add the name. Double click the email address in the To field, add the name, and surround the email address with angle brackets, like so:

This is how you edit an email address in the TO field to include the person’s name.

Get the name in the To field when reading from a Google Sheet

If you’re storing your email list in a spreadsheet and then using the Google Sheet connector button to pull the list into the To field, then GMass needs to know which columns in your spreadsheet contain the first and last names in order to put this information into the To field for each recipient.

Google Sheet with First and Last name columns
Here’s a sample Google Sheet with “First” and “Last” columns, so the TO field can be personalized.

There’s no place to specify which columns contain the first and last names, so GMass attempts to auto detect it, just like we do with the email address column. Specifically, our algorithm looks for columns named any of the following:

  • first
  • last
  • first name
  • last name
  • firstname
  • lastname
  • first_name
  • last_name
  • full name
  • fullname
  • full _name

If any of the above columns are found, and a full name can be assembled using a first and last name or a “full name” column, then the name will be added to the To field alongside the email address. Hint: if your columns for the first/last names are called something else, you can easily rename the columns to fit what we’re looking for — unless, of course, some other app is also reading from the Sheet and needs the columns to be named as you have them.

Another option for personalizing the To field when pulling from a Sheet that doesn’t already have first name/last name columns is to wait until the alias address is set in the Gmail Compose window, like here:

alias address in Gmail compose window

Then click the option to “expand” the alias address into its individual addresses that shows up in the lower left corner of Gmail after the Compose window appears. Note that you can only do this if the total list is under 500 addresses. If we let you do it for any arbitrary size, then the Gmail Compose window would freeze under the pressure of parsing through say, 10,000 email addresses. (See this old gem about how many addresses the Compose window can handle.)

In any case, if you are able to use the “expand” button,  that will turn the alias address into its individual addresses, as shown here:

turn alias address into individual addresses

Now, using the technique described above, you can edit any of the lone email addresses to include their corresponding first/last names by double clicking and editing the text.

Building a list from past Gmail conversations

If you use the “build an email list” button to search for conversations in Gmail and then build an email list, you won’t have to take any extra steps to personalize the To field. That’s because our code will automatically pull the first/last names and email addresses when searching your messages, and it will use this data to personalize the To field.

Creating a behavior-based campaign

Lastly, if you’re sending to a segmented portion of a prior campaign, such as those who didn’t open a prior campaign, or those who did click a prior campaign, then if the original campaign had first/last names in the To field, so will this new segmented campaign. And again, if they didn’t, and you can expand the alias address in the Compose window to show the individual addresses, then you can edit them one by one to display the names, and GMass will respect this when sending the individual email messages.

What others say about deliverability and the “To” header

In this MailChimp article, the author claims that you can improve email deliverability by using “merge tags to personalize the ‘To’ field in your emails with your subscribers’ names.”

In this Hubspot article, the author claims that “This way, spam filters know that you do, indeed, know your recipient.”

This post by Iterable says that “Customizing an email’s To field improves deliverability by confirming to ISPs that you know the first and last name of the people to whom you’re sending.”

Are these claims accurate? We’ll do a data-driven test in the future and let you know.

More cold email To header personalization options

Now that you know how to hack the To field, did you know that you can also personalize the Subject and Message, use fallback values, send personalized attachments, include personalized links, and even personalize the Cc field? GMass can even auto detect your contacts’ first names from just their email addresses. Read all about it in our full personalization guide.

Ready to transform Gmail into an email marketing/cold email/mail merge tool?


Only GMass packs every email app into one tool — and brings it all into Gmail for you. Better emails. Tons of power. Easy to use.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


Want to set up Yahoo SMTP settings for your Yahoo Mail account?

To make this process easier for you, I’ll cover what Yahoo SMTP settings are and how to use the mail server settings in an email client of your choice. I’ll also cover Yahoo’s POP and IMAP settings to help you set these up as an incoming server for your email account.

Finally, I’ll also answer some questions about SMTP, POP, and IMAP settings.

This Article Covers:

(Click on a link below to jump to a specific section)

Let’s get started.

SMTP, POP, IMAP Server Settings for Yahoo Mail Server

Here are the SMTP, POP, and IMAP server settings for Yahoo Mail:

Note: If you want to know what SMTP, POP, and IMAP are, skip to the FAQs section. You can always jump back here when you’re done.

A. Yahoo SMTP Settings (Outgoing Server Settings)

Yahoo Mail SMTP Server / Hostname: smtp.mail.yahoo.com

SMTP Port Number: 465 or 587

Encryption: TLS/SSL

SMTP Username: Your Yahoo mail address

SMTP Password: Your Yahoo mail password

B. Yahoo POP Settings (Incoming Server Settings)

Yahoo Mail POP Server / Hostname: pop.mail.yahoo.com

POP3 Port Number: 995

Encryption: TLS/SSL

C. Yahoo IMAP Settings (Incoming Server Settings)

Yahoo Mail IMAP Server / Hostname: imap.mail.yahoo.com

IMAP Port Number: 993

Encryption: TLS/SSL

Go back to contents

Now, let’s see how you can configure your Yahoo SMTP settings.

How to Set Up Your Yahoo SMTP Settings

Before we dive into the SMTP setup, let me first clarify something:

Yahoo Mail is an email provider or email service, which means that it takes care of the actual service of sending and receiving your emails.

On the other hand, an email program (also known as an email client) is the mail app or program you use to access your inbox and emails. Mozilla Thunderbird and Microsoft Outlook (formerly known as Hotmail) are two popular examples of an email program.

Usually, the SMTP setting of an email service can be added to the account settings of the mail app you’re using.

Once you add your Yahoo account to the app, enter the Yahoo SMTP server parameters to set up your outgoing server.

Here are the outgoing server settings:

  • Yahoo Mail SMTP Server / Hostname: smtp.mail.yahoo.com
  • SMTP Port Number: 465 or 587
  • Encryption: TLS/ SSL
  • SMTP Username: Your Yahoo mail address
  • SMTP Password: Your Yahoo mail password

The Yahoo SMTP server settings work with most desktop mail clients, and the same settings also apply to a mobile device mail app or a web-based email program.

But keep in mind that the exact steps to access account settings would depend upon your mail client.

For example, if you want to use the Yahoo Mail service as your email provider and Microsoft Outlook as your email client, you can follow the steps I’ve covered here (you’ll have to replace the Gmail SMTP settings with Yahoo’s SMTP settings I mentioned).

Go back to contents

Now that you’ve set up your SMTP settings, you can send emails via your Yahoo account from your preferred mail client.

But you can’t receive your Yahoo Mail account emails on your incoming server yet!

Why?
SMTP only deals with outgoing emails.

To receive emails, you need to configure the POP mail server or IMAP mail server settings for your Yahoo account.

How to Set Up POP and IMAP Settings for a Yahoo Mail Account

Similar to Yahoo’s SMTP settings, the steps to set up your POP and IMAP settings differ based on the email app you use.

For example, in Microsoft Outlook, you can follow the POP and IMAP setup steps I covered here (you’ll have to replace the Gmail POP/IMAP settings in that article with the Yahoo POP/IMAP settings.)

Here are the Yahoo settings you’ll need to input:

A. Yahoo POP Settings (Incoming Server Settings)

Yahoo Mail POP Server / Hostname: pop.mail.yahoo.com

POP3 Port Number: 995

Encryption: TLS/SSL

B. Yahoo IMAP Settings (Incoming Server Settings)

Yahoo Mail IMAP Server / Hostname: imap.mail.yahoo.com

IMAP Port Number: 993

Encryption: TLS/SSL

When you’ve configured the server setting for POP or IMAP, you can use the Yahoo incoming mail server to receive emails inside your Outlook mail app.

Go back to contents

Still have questions about SMTP, POP, and IMAP?
Read on.

SMTP, POP, and IMAP FAQs

I’ll answer some FAQs about the SMTP, POP, and IMAP protocols to clarify any doubts you may have.

1. What Is SMTP?

SMTP (Simple Mail Transfer Protocol) is a protocol used to send emails over the internet. It’s used by most email software to send outgoing mail via an outgoing mail server (SMTP server).

SMTP works with a Mail Transfer Agent (known as the SMTP relay) to ensure your emails are sent to the correct mailbox.

The protocol is used to send emails between SMTP clients (the email program you use) and SMTP mail servers (it moves from one server to the next until the destination is reached).

But what is an SMTP mail server?
Any computer running SMTP is an SMTP mail server!

They ensure that the emails take the correct route to reach the intended recipient’s email program or email application.

Note: Since SMTP works without authentication and does not use an encrypted connection, you can ensure account security by using Secure Sockets Layer (SSL) for SMTP connections.

2. How Does SMTP Work?

SMTP works with a set of codes and commands that make the entire process of sending emails much easier.

Each time you send an email to a full email address, it’s transferred via several SMTP relay systems and Yahoo servers until it reaches its final destination — which, in this case, is your recipient’s inbox.

However, SMTP can only transmit text!

So how are my attachments sent?
To help you send attachments along with your email text, the Multipurpose Internet Mail Extension (MIME) protocol is used. MIME encodes all the non-text data into the text format before it is transferred across SMTP relay servers.

3. What Are POP and IMAP?

Like SMTP, POP and IMAP are also protocols used to transfer emails across the internet.

POP is short for Post Office Protocol, and IMAP refers to Internet Message Access Protocol. These protocols are used to receive incoming mail from an incoming mail server (like the Yahoo server) to the recipient’s computer.

Let’s take a closer look at each protocol:

a. POP3

POP3 is the third version of the Post Office Protocol — which is used to receive incoming mail.

A POP server downloads incoming mail and stores it locally on your device. This way, you don’t have to be online and access the email server whenever you want to check your email.

You can configure POP3 with any computer and app to make access through multiple devices easier.

b. IMAP

Like POP3, Internet Message Access Protocol (IMAP) is another protocol used to receive emails.

How is IMAP different from POP?
The main difference between POP and IMAP is that an IMAP account stores all its mail on the email server instead of downloading your emails. While this allows easy access, you need to have a reliable internet connection to use an IMAP account effectively.

As IMAP is a form of cloud storage on your incoming mail server, it’s much faster and more efficient than POP3.

4. SMTP vs. POP vs. IMAP

Still confused about these three protocols?
Don’t worry!

Here’s a summary of what we’ve covered so far:

  • SMTP: Used for sending outgoing mail.
  • POP and IMAP: Used for receiving incoming mail — IMAP is faster than POP as it doesn’t download emails.

Regardless of whether you use a POP or IMAP account, the SMTP setting on your app remains the same for sending emails.

Go back to contents

Wrap Up

Setting up the Yahoo SMTP server and a POP server or IMAP incoming server isn’t as hard as it seems!

All you need to do is follow the steps and Yahoo mail settings I’ve covered above, and you’ll be able to set it up within seconds.

See why 99% of users say they’ve had their best deliverability ever with GMass


Email marketing, cold email, and mail merge all in one tool — that works inside Gmail


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


Have you ever wondered how to send multiple emails with different attachments in Gmail?

Well, you can now easily send a mass email or mail merge in Gmail with personalized attachment files.

Why would you ever need to do this? Let’s say you run a small business that needs to send PDF invoices to your customers once a month. Your billing software generates the PDF invoices, one for each of your 100 customers. Now you need to send the right invoice to the right customer. Until now, you’d have to prepare multiple emails manually — composing and sending 100 individual emails, and having to attach the right PDF to each email.

But now, you can automate all of this. Here’s a two-minute video demo:

What tools will you need to mail merge with individual attachments?

  1. All of your attachment files, ready to send
  2. A Google Sheet that lists the email addresses in one column and the file names in the other
  3. A place to host the files, such as Google Drive, Amazon S3, Dropbox, or your own web server
  4. A Gmail or Google Workspace account
  5. GMass installed and connected

Host your attachments somewhere

Your files can either be in your Google Drive or somewhere publicly accessible on the web, like your own web server, a public Dropbox folder, or a public AWS S3 bucket.

If you’re going to host your file attachments in your Google Drive, our software needs permission to access your Google Drive. It’s the one step you have to take in advance of sending any personalized attachments with your bulk emails.

You must give GMass read-only permissions to your Google Drive! By default, GMass doesn’t have permissions for this when you sign up for an account.

——————-

To allow GMass to download different attachment files from your Google Drive:

>>>>>>> FOLLOW THIS LINK <<<<<<<<

——————-

and log in with the same account that you’re using to send your mass email.

Also, note that the files don’t all have to be in the same folder; they can be spread across multiple folders as long as they’re in one single Google Drive account. Lastly, if you use Google Drive, be sure that the “Convert uploaded files…” setting is UNCHECKED:

UNCHECK convert uploaded files
(Click the Settings gear first at the top-right, then uncheck that box, then click DONE.)

If you don’t uncheck this box, then certain file types, like .txt files, won’t remain as txt files after you upload them; they’ll get converted to Google Docs and won’t be “attachable” to your personalized emails.

Set up your Google Sheet

First, set up your Google Sheet. Make sure your column headings are in the first row, and at a minimum you’ll need two columns, one for the email address, and one for the file to be attached. You can have other columns too, like FirstName, LastName, Company, and anything else you want to use to personalize your mail merge. Here’s what your spreadsheet should look like:

personalized attachment spreadsheet

The column containing the files can be named anything as long as it starts with “attachment.” Any of the following are valid column names:

  • Attachment
  • Attachment1
  • AttachmentFile
  • attachment10

It’s not case sensitive, either. If your files are hosted in Google Drive, then the column should contain just the file attachment name. If your files are hosted somewhere on the web, then the column should contain the full URL to the file. Here’s what your spreadsheet might look like if you’re hosting your files on your own web server for a mailing to multiple recipients.

personalized attachment with link to server

If you’re a spreadsheet wizard, feel free to use formulas for the attachment column as well. For example, if you’re sending monthly statements to your customers, and your billing software generates the monthly statements in the format of [CustomerNumber].pdf, and CustomerNumber is one of the column in your spreadsheet, you can set the attachment column to “=A1” + .pdf.

personalized attachment from spreadsheet formula

Finally, if you have blank cells in an “attachment” column, then it’s assumed that those recipients don’t have corresponding files, and the emails will be sent without any file attachment.

Connect to your spreadsheet, compose, and send your messages

If you’ve performed a mail merge with GMass before, the next step should be familiar. Click the Sheets connector button, choose your spreadsheet and worksheet, hit the “Connect” button, and a Gmail Compose will open. Type your message, and hit the GMass button. You don’t need to attach any files to this message. GMass will automatically detect the column in your spreadsheet containing the files to be attached and attach them to the individual emails.

personalized attachment email

The only reason you would attach a file directly to the Gmail Compose window is if you also want a separate attachment to go to all recipients. In that case, any files you attach to the Draft will be sent to all recipients, and additionally, any personalized attachments set in the spreadsheet will also be sent to separate emails.

For example, let’s say you publish a PDF newsletter monthly that you also want to send to everyone along with their personalized invoices. Then, you would attach the PDF newsletter to the Gmail Compose window, and after clicking GMass, each of the bulk personalized emails would be sent the same newsletter PDF as one attachment and an individual personalized invoice PDF as a second attachment.

Need to send personalized emails with more than one attachment?

Do you need to send more than one personalized attachment per recipient? For example, if every month, you send your customers an invoice and an account summary, and they are two different PDFs, then you can have TWO columns in your spreadsheet, for example:

  • Attachment1
  • Attachment2

GMass will notice this, and send both personalized files to each recipient.

multiple personalized attachments

Automate this to send emails with attachments every day, week, or month

Do you typically send your customers multiple messages each month?

You can set your campaign and spreadsheet up once, and then let the emails send on autopilot every day, week, or month, based on your business’ needs. Let’s say you want your email with attachments to send on the first of every month. Just schedule your initial email to send on the first of the month, and then set it to repeat MONTHLY.

automate personalized attachments

Now, on the first of every month, GMass will automatically read your spreadsheet, retrieve the files, and send the emails with their corresponding attachment. All you need to do before the first of each month is get new files in place, either to your Google Drive, or wherever you’re hosting them.

Error handling for missing files or permissions in GMass or Google

If GMass can’t retrieve the file for a particular email address, that recipient will be skipped over and you’ll get a report at the end of the campaign of all recipients who were skipped. If you intentionally don’t want certain recipients to receive any attachments with their emails, just make those cells blank under the “attachment” column — that way, they will still receive the email but without anything attached. It makes sending multiple emails with different needs quite easy.

If you’re hosting your files on Google Drive, but GMass doesn’t have permission to read from your Google Drive, then your campaign will error out with this error:

Insufficient Permission: Request had insufficient authentication scopes. [403]
Errors [
        Message[Insufficient Permission: Request had insufficient authentication scopes.] Location[ – ] Reason[insufficientPermissions] Domain[global]
]
GMass didn’t have sufficient permissions to your Gmail account to do what you wanted. If you were trying to send personalized attachments, re-connect your Gmail account and then click the RESTART link.

Using Dropbox to store files for your mail campaign

If you want to use Dropbox to store the files you want attached to your emails, then you’ll have to do some manual work — you’ll have to create public URLs for each and every single file you want to attach, even if all the files are in the same Dropbox folder. While Dropbox makes it easy to get a public link to a folder, and even a public link to a file, Dropbox does not make it easy to generate public links for say, 100 files, without going through the link creation process manually for each of the hundred links you’ll need for a campaign with multiple emails.

To generate a public link to a file, just right-click the file and choose “Copy Dropbox Link,” and then place that URL in the appropriate Google Sheet column.

how to copy dropbox link

 

But again, you will have to repeat that process for every single file, because there’s no pattern that you can follow to determine the links yourself. For example, if you have two files in Dropbox, doc1.pdf and doc2.pdf, and you generate public URLs to them, they will look like this:

https://www.dropbox.com/s/bz2536zash23znd/doc1.pdf?dl=0
https://www.dropbox.com/s/kjdjf91w5xuip6n/doc2.pdf?dl=0

Now let’s say you have 100 files for which you need to generate public links. While you can see the left portion of the URL includes “dropbox.com,” as expected, and the right portion includes the file name, as expected, there’s a unique identifier string inserted in the middle that prevents you from generating these URLs on your own for easy copying and pasting into a Google Sheet that controls multiple emails.

If you do go through the process of manually generating the Dropbox link for each file, then your Google Sheet will look like this:

Google Sheet with manual Dropbox URLs

BUT… those links won’t work as attachments in that form. Because those URLs actually go to Dropbox pages that display the PDF file, not the PDF file itself. And for this process to work, we need to get at the PDF itself. We’ll achieve that with Dropbox’s force download feature.

You’ll need to change the final 0 in each link to a 1.

So your links would now be:

https://www.dropbox.com/s/bz2536zash23znd/doc1.pdf?dl=1
https://www.dropbox.com/s/kjdjf91w5xuip6n/doc2.pdf?dl=1

If you’re dealing with lots of links, a find-replace will save you lots of time on this process.

Go to Edit > Find and replace or hit Command/Control+Shift+H.

Find dl=0 and replace it with dl=1. I also recommend checking Also search within links if you pasted in the Dropbox URLs and Google turned them into links. Click the Replace all button

Using Amazon S3 to store your attachments

Using S3 is a much more convenient option than Dropbox to store files for the purpose of personalized attachments, because S3 makes it easy to determine the public URL for any file. By default, an S3 bucket isn’t public, so make sure that if you create a bucket for the purpose of attaching files to multiple emails, you make your bucket public. You must UNCHECK the “Block all public access” box and then CHECK the acknowledgement box:

how to make Amazon S3 bucket public

 

Then, when you upload your files to a bucket, make sure you choose “Grant public read access…” to the objects:

Grant public read access to object in Amazon S3

After your files are uploaded, S3 provides you with the public URL for each file, and it’s simply the DNS name you chose for your bucket in combination with the filename:

Amazon S3 object URL

So in this case, my first two files will have the URL:

https://emailattachments.s3-us-west-2.amazonaws.com/doc1.pdf
https://emailattachments.s3-us-west-2.amazonaws.com/doc2.pdf

Note that these URLs don’t actually work, so don’t try visiting them! But, any files I upload to this bucket will have a URL in the same format, which means my Google Sheet would look like this:

Google Sheet with Amazon bucket URLs

Other mail merge tips and tricks

What else can you do to make your emails with personalized files even better?

Ready to send better emails and save a ton of time?


GMass is the only tool for marketing emails, cold emails, and mail merge — all inside Gmail. Tons of power but easy to learn and use.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


If your app needs to let a user pick a file from his Google Drive, you might consider using the Google Picker API.

I recently implemented the Picker for my users because I need to let users choose a Google Sheet from their account, and in some rare cases, Google Drive access is blocked the G Suite Admin, rendering my code that lists Sheets from Google Drive useless. The Picker is an alternative that doesn’t require Drive access, and so it allows my users to pick a spreadsheet from their account, even though Google Drive access may be denied by their G Suite admin.

In implementing the Picker API, I encountered several challenges and subsequently came up with several advanced techniques that you also might find useful.

The main documentation for the Picker API is here. After you get the example provided by Google working, here are a few advanced techniques you might find useful.

Open the Picker in a popup, and return the file’s ID to the main window

In your web app, you might link to the Picker and then open it in a popup. Normally it’s just a matter of simple JavaScript to return a value from the popup to the main window, and many have written about how to do that. What if, however, you’re launching the Picker from a Chrome extension, and the Chrome extension is running on a site for which you don’t have any control, like Gmail. If you use the normal technique to retrieve the value from the popup, you’ll get this error in the Console:

SecurityError: Blocked a frame with origin "http://www.<domain>.com" from accessing a cross-origin frame.

The only known way around this is to use the window.postMessage function to pass a message from the popup to the main window, as explained here. In this case, the message is the ID of the file the user has chosen from his Google Drive, prepended by the string “spreadsheetid—” so that I know the message is from my popup.

Here’s the code from my Picker HTML:

function pickerCallback(data) {
   if (data.action == google.picker.Action.PICKED) {
   var fileId = data.docs[0].id;
   window.opener.postMessage('spreadsheetid---' + fileId, '*');
   window.close();
  }
}

And here’s the code in the parent window.

  window.addEventListener('message', function(event) {
  if (event.data.toString().includes('spreadsheetid---')) {
  SpreadsheetId = event.data.toString();
  }
});

Retrieve the file ID without access to any scopes

If you read the Google documentation for the Picker API, you might assume that to use it, you must request access to the “drives” scope.

Google’s documentation even states:

Note: For a list of valid views, refer to ViewId in the Google Picker reference. To obtain the token for any of these views, use the https://www.googleapis.com/auth/drive.file scope.

And in the sample code, we find this:

Google Picker code

 

After all, in order to actually do anything with the file, you need to be able to at least read the file, and the various Google Drive scopes is what makes that possible. In some cases, however, you might only care about retrieving the file ID, and in that case, you don’t need access to any scopes. This is the case for my use case, where I’m using the Picker to let a user choose a Google Sheet. Once I have the ID of the Google Sheet, then I use a scope that I’ve requested access to separately as part of the user login process, the spreadsheets.readonly scope as part of the V4 Sheets API, to read the spreadsheet data.

Use an existing OAuth token rather than requiring the user to log in every time

If you follow the Google example for getting the Picker going, you’ll notice that every time you load the picker, an OAuth login is presented to the user. And if you step through the sample code, you’ll see that this code is what triggers the login process:

    var oauthToken;

    // Use the Google API Loader script to load the google.picker script.
    function loadPicker() {
      gapi.load('auth', {'callback': onAuthApiLoad});
      gapi.load('picker', {'callback': onPickerApiLoad});
    }

    function onAuthApiLoad() {
      window.gapi.auth.authorize(
          {
            'client_id': clientId,
            'scope': scope,
            'immediate': false
          },
          handleAuthResult);
    }

    function handleAuthResult(authResult) {
      if (authResult &amp;amp;&amp;amp; !authResult.error) {
        oauthToken = authResult.access_token;
        createPicker();
      }
    }

If a user is going to be “picking” a file over and over, though, you don’t want your user to have to log in every time. In this case, you have a couple of options:

  1. You can store the token value somewhere and then use it the next time. Notice that the only important value from the Google sample above is authResult.access_token. If you store that and then set that the next time you need to load the Picker for a user, you can comment out the code in the “onAuthApiLoad” function.
  2. If you’re already generating a token value from the initial Google OAuth login to your app, then you can use that token value and never make the user log in before picking a file. Again, comment out the code in the “onAuthApiLoad” function and replace it with your own code that retrieves the token value and manually all handleAuthResult yourself, passing in the token value that you retrieved from your database or perhaps, localStorage. I’m not going to comment on the security of where you store your token values, because that’s beyond the “scope” of this article, but I’m just presenting a couple of options here for the purpose of demonstration.

List just a particular file type in the Picker

This is fairly well presented in the Google documentation, but it’s worth going over anyway. In my case, I only want spreadsheets to be displayed in the picker. So in the picker builder, I need this line of code:

var view = new google.picker.View(google.picker.ViewId.SPREADSHEETS);

Here’s the createPicker function with that filter included.

    function createPicker() {
      if (pickerApiLoaded &amp;amp;&amp;amp; oauthToken) {
        var view = new google.picker.View(google.picker.ViewId.SPREADSHEETS);
        var picker = new google.picker.PickerBuilder()
            .enableFeature(google.picker.Feature.NAV_HIDDEN)
            .setAppId(appId)
            .setOAuthToken(oauthToken)
            .addView(view)
            .addView(new google.picker.DocsUploadView())
            .setDeveloperKey(developerKey)
            .setCallback(pickerCallback)
            .build();
         picker.setVisible(true);
      }
    }

Here’s a list of other types from the documentation you can include to display different file types.

Google Picker file types

Conclusion

I hope this helps you use the Google Picker API more effectively. Also see my other insights into Google OAuth.

Ready to transform Gmail into an email marketing/cold email/mail merge tool?


Only GMass packs every email app into one tool — and brings it all into Gmail for you. Better emails. Tons of power. Easy to use.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


Over the 20 years I’ve been building email marketing software, I’ve used or come across almost every SMTP service on the market. While plenty of articles exist comparing the pricing and other facets of SMTP relay services, none offer an in-depth technical comparison, which is why I’ve done a deep dive to give you my expert insights below. It’s high time someone that is a technical expert in the SMTP protocol reviewed the popular commercial SMTP services.

If you Google “SMTP service,” you’ll find a plethora of companies offering services, and in this article, we’ll examine the technical aspects of the most popular ones. This review does not take into account pricing, simply because you can easily look that up on each provider’s website.

The technical aspects I’ll examine are:

  1. The sign-up process: Can you sign up and start sending right away? Is there a human-review required before you’re allowed to start sending?
  2. Sending limits: Can you send a small 1,000-person campaign right away, or does the service throttle you until you’re a trusted user? (I’ll actually send 1,000 emails to my own users through the service and see what happens.)
  3. Pass-through or not? Is the SMTP service a pass-through SMTP service that sends your email along just as it was relayed to it, or does it alter the MAIL-FROM headers and add any other information to the headers or body before it transmits the email to the recipient’s MTA? Some services force their own open-tracking pixel into the emails.
  4. Out-of-the-box SPF and DKIM setup and which domains are used for SPF and DKIM compliance. If it’s a pass-through service, this won’t apply, because it’s impossible to have a pass-through service that is out-of-the-box SPF and DKIM compliant. If it’s not a pass-through service, does it make sure your emails are SPF and DKIM complaint off the bat by using the service’s own domain rather than yours?
  5. “From” line flexibility: Will it let you send “from” an address @gmail.com?
  6. Custom DKIM: Is it possible to DKIM-sign the emails myself with my own domain? Is it possible to control the MAIL-FROM header used?
  7. Shared vs. Dedicated IPs: Will they let you send high-volume email through their shared IPs, or do they aggressively push you towards a dedicated IP?
  8. The User Interface: For any SMTP service, the SMTP relay system is the most important consideration, but it’s nice when the web UI for reporting and lookups is well designed. Is it slick and modern, or does it look like it was built in the 90s? Most importantly, does it provide three key features: a) the ability to search by recipient and by Subject line, b) the ability to see the exact SMTP conversation with the recipient, and c) the ability to export your data? Does it do thoughtful things like, when it provides DNS records for you to add, give you a “copy to clipboard” widget so you don’t have to drag your cursor over a super long DKIM public key, hoping you get every necessary character but not any extra ones?
  9. Shared IP reputation: What’s the reputation of their shared IP pool?
  10. Support competency: Is their front line support personnel competent? Sometimes I find that people performing technical support for email service providers are grossly incompetent, answering basic questions about how email works, entirely wrong. An example awaits you below.
  11. GMass fit: Finally, we’ll conclude whether the SMTP service is suitable for use with GMass.

First, what is a “pass-through SMTP service?”

Only an SMTP geek would care about this, and if you Google that term, you won’t find anything because I invented it just now. When you relay an email, and your “from” address is [email protected], and then the SMTP service relays the email to the @gmail.com server, does the MAIL-FROM remain “[email protected]”, or does it alter the MAIL-FROM to be “bounce friendly,” so that it becomes [email protected]? A pass-through SMTP server sets the MAIL-FROM to exactly what the “from” address is when you relayed the email. A non-pass-through SMTP server alters it, based on its desire to control bounces for you, or based on your own customization of the service inside the settings.

Why do these things matter?

Depending on what you’re using an STMP service for, the attributes that matter to YOU might differ from the attributes that matter to me. For example, if all you care about is getting your website to send a confirmation email after someone fills out a form, you probably don’t care about the out-of-the-box DKIM setup or whether you’re initially throttled below your paid plan’s sending limits (unless you’re getting thousands of form submissions/day — then you might care). But if you’re like me, and you’re using an SMTP relay to service thousands of users, some of whom are sending broadcast email and some of whom are sending transactional email, and you want the process of onboarding the users onto the SMTP relay as seamless as possible, then factors like these matter, along with the process (or hopefully lack thereof) of verifying a new “from” address.

What do I look for in the ideal SMTP service?

Sadly, no SMTP service, not even the 600-pound gorilla known as SendGrid, meets all of my strict criteria for perfection. Here they are:

    • The web UI matches what happens over the SMTP relay instantly. Meaning, if I relay an email through the service, and then go to the service’s Reporting page on the web app, that email should immediately show as having been received by the service, even if hasn’t been delivered yet. Even SendGrid sometimes has a one minute+ delay.
    • The ability to sign up and send “from” any address, without verification, and by using the provider’s own domain for the MAIL-FROM and DKIM signing.
    • The ability to send high volume immediately, knowing that an AI-based algorithm is watching and can shut off spammers.
    • The web UI should provide access to the SMTP log for each delivered email.
    • The ability to test a platform without putting in a credit card.
    • Letting you send “from” a gmail.com address.
    • The ability to set whether the service should be pass-through or not.
    • The ability to set one domain as a default domain, where all mail, regardless of the “from” address uses a MAIL-FROM and DKIM signature based on that one domain.

 

The big list of SMTP services

We’ll review these SMTP services suitable for relaying broadcast emails:

  1. SMTP.com
  2. Sendinblue
  3. SendGrid
  4. Mailjet
  5. Mailgun
  6. SMTP2Go
  7. SocketLabs
  8. Amazon SES
  9. Mandrill

For each, I will subscribe to the lowest priced option, so that I’m not a “free” user subject to free account restrictions, but I’m hoping that there won’t be any sending limitations imposed on me other than my paid plan’s limits. I do think that letting people test a platform for basic functionality and UI aesthetics is important though for free, and without having to tender a credit card.

Did your favorite SMTP service not make the list? Comment below to let me know, and I’ll get around to reviewing it eventually.

A Summary of Capabilities

Service Send from @gmail.com Out-of-the-box DKIM/SPF compliance Can send right away without human verification
SMTP.com YES N/A NO
Sendinblue YES YES YES
SendGrid YES YES YES
Mailgun YES NO YES
Mailjet YES YES YES
SMTP2Go YES NO YES
SocketLabs NO YES NO
Amazon SES YES YES NO
Mandrill NO NO YES

SMTP.com – Built like Fort Knox and still it barely works

(back to top)
As an SaaS platform developer, I’m partial to platforms that let me sign up and start using the service right away, without any manual review.

SMTP.com is NOT like that.

Being able to relay even a test email through SMTP.com required a multi-day approval process that started with a manual review of my account and ended with the rep asking me to place a new page on my website to prove that I owned my website’s domain. Gosh! Only then was I given credentials to SMTP.com’s server.

Here’s the first email asking for more information.

SMTP request for information

After answering the questions, here’s the request to place a page on my website. This goes down as the most work I’ve ever had to do to verify myself for an SMTP service. I mean, they could have just asked to send an email to some-user@my-domain, like SSL certificate issuers do to confirm ownership of a domain.

SMTP domain validation

This is also one of the few services that requires a credit card to try.

After jumping through all these hoops, one would hope for a seamless user experience, but that wasn’t to be. Most of my test emails never arrived.

Here is proof that I’ve sent an email:

Proof of email to SMTP

Not only did the email not arrive to the email box, it doesn’t even show up in their reporting:

SMTP email dashboard

SMTP impasse

We are at a dead end.

Oh wait, one of my two test emails arrived. The other is in the mail queue:

SMTP delayed server response

It’s claim that the mail server for emailtest.io couldn’t be reached simply isn’t possible, because that email server is receiving a constant flow of emails from around the world, 24 hours a day. I suspect the bigger issue at hand is that it does it not know how to look up an MX record for a domain that’s not already in its cache.

SMTP.com requires a manual account review before you can send anything or even access your portal. Their verification email landed in spam. And you have to enter a credit card upon signup and choose a paid plan, because there’s no free trial.

The missing email shows as “queued for delivery,” but several minutes later, the relay accepts it.

SMTP missing emails are queued for delivery

My own SMTP tester shows the email is properly delivered to SMTP.com:

Proof of delivery to SMTP

Three minutes in, and still nothing.

Furthermore, I expected that if I clicked on a number in its User Interface, I’d get to see the detail behind that number. Sadly, that isn’t the case. Clicking on “Delivered” here would be useful to see exactly which emails have been delivered:

SMTP delivery report

Another example: If I click the one under Hard Bounced, I’d like to know which one address that is, and it doesn’t tell me.

SMTP hard bounce report

SMTP.com’s unique model allows you to create multiple “senders,” and each one comes with its own SMTP username/password. Each “sender” is NOT restricted, which means each one can send from more that that one “from” address, which is nice; but ultimately, it doesn’t matter because nothing is being delivered.

Even after a few minutes, it is still not delivering:

SMTP incomplete delivery

And 19 hours later, my test email is still in the queue:

SMTP delayed email delivery

Also, I see this, but it doesn’t tell me anything. Do I really have to get in touch with support to solve this?

SMTP message delivery alert

The most frustrating thing about testing SMTP.com is that there’s a significant lag between when you relay messages and when the messages appear anywhere in the UI, whether as “queued” or as “delivered.” In my test cases, messages were queued for no apparent reason.

By default, SMTP.com adds an open tracking pixel and modifies URLs to be click-tracked, but unlike Sendinblue, it can be turned off:

SMTP turn off tracking pixel

Interesting factoid: SMTP.com has an interesting history. Not only does it have the ultimate domain name for an SMTP service, but also it used to be a small public company trading on the OTC market. I remember following its stock price back in the day, but now it’s no longer public.

The skinny on SMTP.com

UI: Old, clunky, and can’t click on a number to see its detail. The UI is updated long after an email is relayed to the service.

Email delivery: Most of my emails went missing.

Signup: The most painful signup and verification process of any SMTP service.

Grade: D

Sendinblue – an easy, efficient solution with one major flaw

(back to top)

I was impressed with the ease of sign-up! With sendinblue, I could send right away, my test emails made it to the INBOX, and SPF passes out-of-the-box because it uses its own domain in the MAIL-FROM area and signs mail using its own domain, sendinblue.com:

Sendinblue domain signature

Sendinblue is not a pass-through SMTP service like SMTP2Go is.

Sendinblue allows you to create an account and start sending without any manual review.

Additionally, out of the box, it uses its own domain for SPF and DKIM verification, making it easy to start sending right away with minimal technical setup. What’s the one major flaw, however? Sendinblue forces an open-tracking pixel into all emails relayed through the SMTP service, and open-tracking can’t be turned off unless you meet some stringent sender requirements. This poses a problem if you’re using a solution like GMass or any other desktop email marketing app which requires an SMTP service to be used. GMass and every other major email marketing app inserts its own open tracking pixel to provide campaign-level reporting, so if the SMTP service also inserts its own open-tracking pixel, the email will be double-tracked. This doesn’t pose any technical issues on the surface, but a savvy email recipient might see this as nefarious, and open-tracking pixels, sometimes referred to as “web bugs,” can be a trigger for spam filters. Most importantly, though, it’s just silly to force that pixel and prevent the user from turning it off.

What the receiver sees:

Sendinblue mail-from address

Note that the MAIL-FROM that sendinblue uses is [email protected].

That makes this service automatically SPF compliant.

Additionally, they sign the emails with their own domain, sendinblue.com, and this is what the DKIM signature looks like:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendinblue.com; q=dns/txt; s=mail; bh=fnXDWgomUIbb+pTCU+UYvgSEaOR9AguPfISJbxLOyjQ=; h=from:subject:date:mime-version:content-type:content-transfer-encoding:x-csa-complaints; b=daAN/k9814CLN57y2vaVO0e+5kbmiQj+PevO2hxAz9W6Y/1li3C6oiH3X3BY+/Z1mvUxvrHzyUcv TZBqQ3oU3Q4pPrAB15lMGyblmWiokMTP87vaQfKlnp4epSQDnO4/8DBmVHFdj5revifsxiGbC98i vScv7Ezf9e2CGNj610Y=

This is great (and unique) because it doesn’t require you to set up your own domain, and it still lets you send “from” any domain. The fatal flaw? They force that open tracking pixel:

<img width="1" height="1" src="http://bdahhda.r.af.d.sendibt2.com/tr/op/xUUXgMOgBixJy1E8_ZzQniCsvk8urceI0ErIEWuQMaicc4uwCQBaTG3tNrvq2VithC3TlBnEPeFotR7gyBW8Bl8f0k84SDT6sNLWScoUUrP-MU7O3WhduoUlQryvTz88t4yB1bf0z598wQ" alt="" />

I inquired with Sendinblue’s tech support, and was told this:

Sendinblue remove tracking link

They also have a strange sending quota of measuring your hourly emails. I’ve had my account for about a year, and over its lifetime, I’ve sent 3,164 emails with a 41% open rate. Still, though, my quota is set to just 78 emails/hour. In fact, a few days ago I went over this quota and received this notification:

Sendinblue hourly sending limit

This means that they aren’t employing artificially intelligent systems to monitor their mail flow. By setting a hard quota, it’s easier on them, but it’s harder on the user. So, what happens if I try to send 1,000 emails through the service? Let’s find out.

The User Interface

Strange instructions for SPF setup:

Sendinblue SPF instructions

They don’t bother to mention that this will overwrite any existing SPF settings I already have in place, like the default G Suite SPF record.

The UI is a little clunky. For example, even though I verified that I own wordzen.com by modifying the SPF and DKIM records, the option to verify the domain still appears:

Sendinblue user interface

Also, when you’re on this screen, and you want your SMTP credentials, you click “Get your SMTP key.”

Sendinblue transactional page

But that takes you to the transactional API page, not the SMTP credential page.

Sendinblue SMTP and API

You have to click over to the SMTP tab to get the info you need.

DKIM and SPF

Can I DKIM-sign with my own domain and be in control of the MAIL-FROM header?

With out-of-the-box setup, the From line looks like this:

Sendinblue email from line

It is sent “via sendinblue.com” since that is the domain used in the DKIM signature.

You can add your domain, but then they have a verification process to make sure you own it:

Sendinblue verify domain

There are a couple flaws with how they verify and use the customers’ domain. First, regardless of what I do, I can’t get the MAIL-FROM to be my domain, wordzen.com. In this case, I’m sending from “[email protected],” and wordzen.com is fully authenticated in their UI:

Sendinblue authenticating sender domain

So what’s the point of making me modify my SPF record?

Second, even though I’ve fully verified wordzen.com, only emails sent from [email protected] will have the wordzen.com domain as the signer. I should be able to send from any domain and have wordzen.com be the signer. It tells me as much, though:

Sendinblue domain signer

Third, they ask for extra DNS records that aren’t necessary to prove ownership, and they force the DMARC reporting to go straight to them! What if I’m using multiple providers? What if I want to own the process and have reports emailed to me?

UI actions matching the settings in the SMTP relay

Even more concerning, though, is what comes after deleting my domain entirely from their system as an authenticated domain. When I relay an email, it is still signing it from wordzen.com. I even remove the DNS records. Cached for 1800 fine, but still!

Sendinblue persistent signature

See, look: domain gone!

Sendinblue no domain shown

Ten minutes later, it went back to being signed by sendinblue.com:

Sendinblue incorrect domain signature

It turns out, it’s just a case of the SMTP service not reflecting changes to the web UI immediately.

Support

Normally I don’t evaluate a provider’s support team, but in the case where a tech completely misunderstands a question or answers it wrong, it’s important to highlight it.

My question was: How do I control MAIL-FROM and set it to my domain?

Support responded, and got the answer completely wrong.

Sendinblue support

The skinny on Sendinblue:

Sendinblue is a decent service that delivers mail quickly and has an easy out-of-the-box setup. A few flaws exist that prevent me from taking the service seriously:

  • They force an open-tracking pixel.
  • They don’t let you control the MAIL-FROM line even though they have you set up an SPF record, which is then pointless.
  • Their front line support team seems clueless.
  • Their throttling of emails is too stringent and doesn’t relax quickly enough, even after proving you’re a reputable sender.


Grade: C+

For more, read my non-technical Sendinblue review.

SocketLabs

(back to top)
The first thing you’ll notice when logging into SocketLabs is that their UI is overloaded:

SocketLabs UI

The second thing you’ll notice is that to start sending, you need to launch a “server” and it takes 30 minutes to provision that server:

SocketLabs launch server

SocketLabs is the only SMTP provider with a concept of a “server” that has to be provisioned.

And unfortunately, you can’t send “from” a gmail.com address.

The SocketLabs Acceptable Usage Policy specifically requires that your mail must be sent from an address at a domain that is currently registered to you and under your control.

“For example, you may not use a from address including a domain from consumer email addresses such as Yahoo, Hotmail, AOL or Gmail, etc. or any other domain not under your full ownership and control.”

Additionally, you have to designate all domains that will be used as a MAIL-FROM domain when you relay an email to its service. The MAIL-FROM will ultimately be modified when the email is transmitted from SocketLabs to the remote server, so all this means is that any domains you send “from” need to be listed and verified. Since when I signed up for the service, I used my address of [email protected], it made  wordzen.com the default domain from which I’d send.

As the default, wordzen.com can’t be removed:

SocketLabs default domain cannot be changed

If I try to send an email “from” a domain that I haven’t listed, I get a rejection message immediately when I relay the email.

SocketLabs sender address error message

Even if you try to add an @gmail.com address, you are squarely denied:

SocketLabs gmail address denied

When I do send “from” [email protected] though, my email analyzer shows that it does use its own MAIL-FROM and DKIM signs with its own domain, which is useful because it makes SPF and DKIM pass out-of-the-box.

SocketLabs DKIM sender address

SocketLabs does offer a way to whitelist this and control the MAIL-FROM and the DKIM SIGNING DOMAIN.

Can the sending domain restriction be removed, so that I can send “from” any domain? I inquired with support and was told they would only do that if I subscribed at a higher level:

SocketLabs remove domain restrictions

So if you’re sending from just one domain, the out-of-the-box setup is good. They’ll sign your emails for you, and you’ll pass SPF and all that.

Here is the allowed sender list:

SocketLabs sender list

Let’s try something else, like [email protected]

Weird UI quirk

Despite the default sending being restricted to your original domain, it still makes you agree legally that you can only send from each address/domain on the list.

SocketLabs domain use agreement

It’s like those old automative navigation systems where every time you started the car you had to agree to some bogus legal statement that you wouldn’t use the navigation system while driving.

Once you add an address, you can send from it, and they handle the MAIL-FROM and the DKIM signing. So, you don’t have to mess with any DNS records off the bat, which is beneficial.

Socket Labs MAIL-TO and DKIM

Still though, can the domain/address “from” restrictions be removed so that I don’t have to list each one? At least, I don’t have to verify each one, so I could add all my users, since I wouldn’t need to have them go through the extra step of clicking a link in their Inbox.

Fortunately if you want, you can DKIM-sign emails with your own domain:

SocketLabs custom DKIM

Looks like you can also control the MAIL-FROM header, referred to here as a “custom bounce domain.”

SocketLabs custom MAIL-TO

However, I still want to be able to send “from” any address. I’ll ask support if that can be done. Waiting for support to respond about that and the gmail.com issue.

IP Authentication

One thing to note to avoid confusion. SocketLabs offesr the ability to authenticate based on IP address rather than on what most services offer, which is authorization based on only username and password. That’s a nice feature, but be careful not to misconstrue what’s on their Pricing page:

SocketLabs authenticated IP

An “authenticated” IP is not a “dedicated” IP. An authenticated IP is just the IP you specify that will be relaying the emails from you to them. A dedicated IP means you have a sending IP dedicated just for your use and no other SocketLabs customers.

The skinny on SocketLabs

It’s nice that they use their own MAIL-FROM and DKIM-sign your emails with their own domain out-of-the-box, but the service is too restrictive because you can’t send “from” your @gmail.com account. Also, you have to enter every domain or address that you want to send “from,” and agree to a ridiculous statement each time you enter something new. The concept of a “server” is strange too, since it’s unlikely they’re setting up an actual physical (or virtual) server for every new customer.

Grade: B-

Read my non-technical SocketLabs review.

Mailjet

(back to top)
I like how you login, go to the Transaction section, and boom — your SMTP credentials are right there. So far, they’ve made it the easiest out of all services to find your SMTP credentials and begin relaying email.

Mailjet SMTP

You don’t have to create a “server”, or create an “API key” or set your SMTP password. It just gives it to you. Easy.

Out of the box set-up, SPF and DKIM work since they’re using their own domain as the MAIL-FROM and as the DKIM signing domain.

Mailjet MAIL-TO and DKIM

MAIL-FROM domain is: c6bdbc7c.AM8AAG9P4CAAAAAAAAAAALH4T9IAAAABxFYAAAAAAAlq1QBemzlc@bnc3.mailjet.com

The email is signed with the domain bnc3.mailjet.com.

Unfortunately, you can’t just send from any address. You have to set up each address individually and click a confirmation link, which stinks. That means I can’t just let 100 of my users use this, without putting them through a manual process of asking them to click a link in their Inbox.

Mailjet new sender activation

Annoying UI Quirk

Major pet-peave coming up: when you click the link in the email to verify the new “from” address, if you’re not already logged in to Mailjet, you have to log in to complete the verification. The link should include a unique token which proves I’m the proper recipient of the link. That would make verification seamless.

Here I’m sending “from” [email protected], which has not been validated as a “from” address, but the SMTP relay fully accepts it, and I don’t know anything is wrong:

Mailjet verify FROM address

Unless I go over to “Sender domain and addresses”, which in itself is hard to find (click your name on right, then account settings, then sender domain/addresses)

Mailjet verify multiple senders

You CAN sign emails with your own domain, although I didn’t test it:

Mailjet set up SPF and DKIM authentication

Can you control the MAIL-FROM header?

It gives you the option to set up SPF, but it’s clunky. I’ve added the text to my SPF record, as seen here:

Mailjet SPF text record

But it still “thinks” that it’s not added. It’s likely caching the DNS records rather than retrieving it freshly.

Never mind, after 3 minutes, the “refresh” validated the SPF record:

Mailjet validated SPF record

Just a typical case of the web UI not reflecting what’s happening in real time.

Ugh, after being told my SPF is good to go, it still says “Error” — UI is bad.

Mailjet SPF validation fail

And now back to this, ugh:

Mailjet force SPF validation

Hitting Force Refresh is a crapshoot, sometimes it says “Your SPF record looks good!” and sometimes ti says it can’t be found.

Hmm, even after setting up SPF for ajaygoel.net and sending an email through, the MAIL-FROM is still @bnc3.mailjet.com

Mailjet default MAIL-FROM address

I asked support to remove the sending address/domain restrictions and I was squarely denied:

Mailjet customer service

The skinny on Mailjet:

Like other services, it’s nice that SPF and DKIM work out of the box, but there are a number of UI issues, it’s painful to verify individual “from” addresses because not only does a link have to be clicked for each one, but that link couldn’t even be clicked by my random users since being logged in is also required and I wouldn’t give out the web credentials to 100 users. It is nice though that you can send “from” your @gmail.com account. When you don’t have a “from” address verified, if you try to send from it, the relay accepts it and notifies you later (over the web UI and by email) that you have a pending email that hasn’t been delivered because it’s on hold because the “from” address hasn’t been verified. This has the upside of you not having to re-transmit the email to the relay if you forgot to verify your “from” address, but it has the downside of you potentially never knowing that your account is mis-configured since the relay will still accept the email.

Grade: C

Read my non-technical Mailjet review.

Mandrill

(back to top)

The first thing I noticed about Mandrill is that to begin to use Mandrill you first have to sign up and pay for a MailChimp account, and then you have to add on a Mandrill plan. That alone is quite the barrier for someone who only wants an SMTP relay service. So if you’re not already in love with MailChimp, Mandrill is likely not the transactional email service for you.

Add Mandrill to MailChimp

Here’s a weird quirk. Generally speaking, an SMTP username should be a string of characters without any spaces or punctuation. Notice the SMTP username that Mandrill generated for me, based on my company name. “Wordzen, Inc.” does not make for a good username to transmit over SMTP, but it turns out it doesn’t mater. It’s just for show. The username can be anything and as long as the password is correct, you’ll successfully authenticate into their SMTP service.

Now, onto the service.

First, you can’t try anything for free. Secondly first you have to sign up for a regular MailChimp account, and then yo have to pay again to add on Mandrill, and the minimum block is 25,000 emails. So you’re already about $35 in by the time you’re set up.

Mandrill cost

Mandrill standard plan

then you pay for mandrill

Mandrill payment

So, after signing up twice and paying twice, you MUST set up a domain with them before you can even relay a test email. This makes Mandrill the second most difficult service to sign up and begin testing, next to SMTP.com.

Mandrill set up domain

If you don’t set up a domain, the SMTP relay will actually accept your mail relays, but the emails won’t be delivered, and if you go to the “Outbound” section of Mandrill, you’ll see they’ve all been rejected

Mandrill rejected emails

Because I’m curious, I went through with the sending domain setup process:

Mandrill set up sending domain

Mandrill is SMARTER than SendInBlue with its SPF setup. IT doesn’t tell me to replace my record or create one, but it looks at my existing record and tells me to modify it to include Mandrill’s IP pool:

Mandrill SPF setup

Mandrill is really a pain. Even after verifying ownership of the domain and setting up SPF to give Mandrill permission, I’m still getting rejected because the emails aren’t signed. Who knew that DKIM is a requirement? It shouldn’t be:

Mandrill rejected emails

Alright, let’s set up DKIM

I did it for ajaygoel.net. And finally a test email gets through:

Mandrill DKIM

Here’s what I noticed though. The MAIL-FROM is still <bounce-md_31140088.5e9bb25c.v1-db5811b0061144189b2806bdbff52d61@mandrillapp.com and NOT @ajaygoel.net, so what was the point of having me set up SPF?

The email includes TWO DKIM signatures, one for my domain, ajaygoel.net, and another for their domain, mandrilapp.com. That’s curious, because it means they’re not AFRAID to sign your emails for you and risk their own domain’s reputation, so why make you sign emails with your domain in the first place? I’m going to have to ask support this.

Looks like you have to set up a “tracking domain” to get the MAIL-FROM to be at your domain. Weird, because we call a “tracking domain” something else.

Mandrill tracking domain

Well, this doesn’t work for me:

Mandrill CNAME requirement

I’m not willing to alias my entire domain to you. This would be more palatable for a subdomain like transactional.ajaygoel.net, but if I want my main domain to be the MAIL-FROM, I can’t do that easily with Mandrill.

Abort, abort. I’ve already verified ownership of the domain, so at this point, it should just let me set it to be the MAIL-FROM. I understand that it wants to route bounces sent to “ajaygoel.net” back to Mandrill, but the fact is that most SMTP level bounces will still be captured by Mandrill during the SMTP conversation.

Even though I’ve now set up ajaygoel.net fully, I still can’t send from an @gmail.com account, for the same reason I initially couldn’t send from [email protected]. Mandrill considers it “unsigned” and obviously I can’t go into gmail.com’s DNS record and add a little ol’ TXT record.

Mandrill MAIL-FROM fail

The skinny on Mandrill

Unless you’re already a MailChimp user and in love with the service, Mandrill probably isn’t the best SMTP service to use. It’s difficult to to sign up, it requires a lengthy setup procedure to send, the domain verification process is overkill, and you can’t send “from” your @gmail.com address. The UI though is pretty nice. You might remember that Mandrill stirred quite a controversy a few years ago when it started charging for its service separately, prompting competitors like SendGrid to even set up a “Switch away from Mandrill” hotline to steal their customers. I doubt Ben Chestnut, the CEO, was bothered by this.

Grade: C-

Mailgun

(back to top)
I found Mailgun annoying right from the start. You have to create a domain to send anything, similar to Mandrill. They do have a sandbox domain set up, but you can only send to “authorized recipients”. Mailgun and Amazon SES are the two SMTP services that even have the concept of “authorized recipients”.

Mailgun subdomain

When you add a domain, it encourages you to set up a sub-domain like “mg” of your actual domain. So let’s go through the set up of mg.ajaygoel.net.

These are the DNS records it wants me to add:

Mailgun DNS records

Lots of UI issues

The UI is abysmal. After clicking on my sandbox domain, I go to copy/paste my username/password into my code that relays emails through the SMTP server. Notice a problem?

Mailgun sandbox domain

There’s no space between the password and a link to the right, so when I click to highlight it, it highlights extra text. Sloppy sloppy.

Here’s a weird UI quirk:

 

Basically, Mailgun doesn’t let you use its own domain in the MAIL-FROM or DKIM signature, transferring all the domain reputation responsibility to me, the customer.

Another weird UI quirk:

Another weird UI thing. It’s hard to get to your actual SMTP credentials, unlike in mailjet. here you have to go to yoru domain, go to “domain settings”, and then you’ll find it. SMTP settings should be a main nav item

Why is the green X in the middle?

Mailgun locate SMTP settings

Sending

Using my sandbox credentials to test sending an email doesn’t get me very far:

Mailgun sandbox

Just like SendInBlue, I’m told my sending limit is 100 emails/hour. At least that’s a nice round number, compared to SendInBlue’s 78 emails/hour restriction:

Mailgun email sending limit

This is how Mailgun sends the email:

Mailgun DKIM signature

The MAIL-FROM is based on @mg.ajaygoel.net. The DKIM sig is signed using mg.ajaygoel.net. That’s appropriate since it made me set up SPF and DKIM DNS records for it.

Another odd quirk is that SMTP credentials are broken down by your domain. So for each domain you set up, you get a different set of SMTP credentials. I don’t understand why one username/password can’t be used for the whole account and every domain set up inside it. The organization by “domains” with Mailgun is almost as strange as SocketLabs’ organization by “server”.

Makes you set up your own domain, and correctly it recommends that you set up a sub-domain, because this is how it will probably DKIM sign and what it will put in mail-from header

The one piece of good news is that now that we have our domain set up, which is used for the MAIL-FROM and DKIM, we can actually send “from” anybody to anybody.

Here I use the mg.wordzen.com domain to send from [email protected] even though I haven’t verified silicomm.com at all.

Mailgun send address

One good thing, I’m able to send “from” [email protected] without having set up silicomm.com as a domain. It just signs it the domain I did set up, ajaygoel.net. 

Hopefully I’ve made it clear by now that an email can be signed by any domain, and doesn’t necessarily have to be the domain in the “from” or MAIL-FROM line. A DMARC policy, however, can change this.

Sending “from” silicomm.com:

Mailgun send from any address

And it allows me to send “from” [email protected] too

Mailgun sending from a different address

Here are their instructions to lift that 100 email/hour quota:

https://help.mailgun.com/hc/en-us/articles/115001124753-Account-Sending-Limitation

So they employ manual human review, because their automated systems aren’t smart enough?

The skinny on Mailgun

The worst UI in the business. You have to upgrade to be able to send OUTSIDE of authorized recipients, so really no testing to your real list for free.

You have to set up a domain for SPF and DKIM signing before you can send any real emails.. Mailgun doesn’t ever sign anything with its own domain or use its own domain even in the MAIL-FROM, so they’re entirely passing the buck to the user. The saving grace is that once you set up any domain, you can send “from” any address you want, including @gmail.com addresses.


Grade: C-

Read my non-technical Mailgun review.

SMTP2GO

(back to top)

Easy sign up, and I can send right away! My test email went to INBOX even with an SPF failure. Why did SPF fail out of the box? Because this is a pass-through SMTP service.

Meaning if I send an email “from” [email protected], then the MAIL-FROM when delivering the email is also set to [email protected].

Note that its pass-through in the MAIL-FROM but it does DKIM sign with its own domain, smtpcorp.com, so out of the box SPF will fail but DKIM will pass.

SMTP2GO pass-through SMTP

You can add a “sender domain”:

SMTP2GO add sender domain

The docs say that this will then DKIM sign your emails based on your own domain, but what will the MAIL-FROM then be when it sends an email? TBD.

By default it does NOT restrict who you can send “from”:

SMTP2GO does not restrict senders

This is nice – the reporting shows all recipients and subject lines:

SMTP2GO recipient report

…although it would be nice if it included the “from” address too.

Because it’s a pass through provider by default, when you first send from [email protected], the email is actually sent like this:

SMTP2GO Mail From

But in both cases, it does sign DKIM with its own domain, smtpcorp.com

SMTP2GO DKIM signature

After setting up my domain, ajaygoel.net, this is what changes. The MAIL-FROM is now modified to be [email protected] instead of the raw [email protected], and DKIM signing now includes both smtpcorp.com AND my domain ajaygoel.net

SMTP2GO multiple DKIM signatures

What’s the meaning of that weird MAIL-FROM? Well now it’s SPF compliant, and I didn’t have to modify my own SPF records, since they’re using the CNAME technique.

The CNAME records I entered:

SMTP2GO 2 - sender domains

 

and eventually it verifies their presence. I’ve noticed that sometimes a provider will ask to set up CNAME records versus others will ask to set up TXT records. What’s the difference? By having me set up a CNAME record on a sub-domain, they can control the final result of the domain lookup, since the CNAME is just an alias to their domain. So if anything changes down the road, like their IP pool or their DKIM keys, they can make that change for me without asking me to update my own TXT records.

The skinny on SMTP2GO

An easy, clean service that lets you send out of the box without setting up a domain or verifying much. It’s the only pass-through service I’ve tested, which might mean that it’s normally meant for people who need a simple SMTP relay for their person to person email, like the kind they’re sending from their Outlook client or personal Gmail accounts. The service may not have been designed to send commercial transactional email, although their website and pricing seem to indicate they can handle high volume loads just fine. Even though SMTP2GO is a lesser known service amongst the ones I tested, it gets a high grade for being simple, offering the flexibility I need, and stating all over its website that it won’t throttle my email flow.

Grade: B

Read my non-technical SMTP2GO review.

SendGrid

(back to top)
SendGrid used to be my favorite SMTP and transactional email service, because you could sign up, and start sending from any address and to any address without verifying anything, and SendGrid would make sure your emaails were SPF and DKIM compliant by using a MAIL-FROM  of @sendgrid.net and DKIM signing with @sendgrid.net also. That was a rare thing to be so open and flexible. This all changed though on April 6, 2020, when SendGrid started mandating the use of what they call “sender identities”, which is just their term for having to verify every address or “domain” you send “from”.

So basically, if you created your account before 4/6, you were grandfathered in and you don’t have to do this, although it seems that some accounts still required this. Luckily, I have a handful of SendGrid accounts created before 4/6 where this doesn’t apply.

So after April 6, out of the box, if you create a SendGrid account and attempt to relay right away, this is what happens. So out of the box, you are denied unless you create a sender identity:

SendGrid denied relay

Silly elements of their UI

Their UI, while modern and slick, is designed in a silly fashion. Take the stuff under Settings. The items are listed alphabetically. That doesn’t do anybody any good, unless you know that for “Authentication” which is a typical section that an experienced emailer would seek in a new service, you should look under “S” because it’s actually “Sender Authentication”.

SendGrid UI

And, now that I’ve logged in, I immediately want my SMTP relay settings. Where on the left is it?

Send from an @gmail.com address?

Can you create a @gmail.com “sender identity”?

Yes, you can, but this exposes another element of bad UI design and bad back-end programming. Like Mailjet, the link to click to verify requires you to log in, if you’re not already. Why can’t intelligent web developers people generate verification links that contain a key to login?

Test Send

I verify [email protected] as a “sender identity” and my first email “from” [email protected] has been relayed but hasn’t arrived. Proof that I sent it:

SendGrid proof of sending

It shows up under Activity a few MINUTES later, and as “Processing”. Why isn’t a single email in a brand new account delivered right away?

SendGrid pending email

And finally, I see the SendGrid errors:

SendGrid errors

But these are the strangest errors and indicate a flaw in SendGrid’s processing. I happen to know that PTR records have NOTHING to do with email sending to a particular address. The only thing that is relevant is the MX records of the domain, and the MX records exist. See?

SendGrid MX records

More proof from MXToolbox:

MX Toolbox proof

After its last try, it tells me that MY SERVER BLOCKED the email:

SendGrid email blocked

But we know that’s not true. Alright let’s just try sending to my @wordzen.com email address

Note that there’s a lag between the time an email is relayed and when it will appear in the UI under Activity Feed. For a company with the size and scale of SendGrid, I’m surprised this is the case. How long of a lag?

I relayed this email at 06:17

SendGrid time to transmit

And it finally shows up in the UI not at 6:18, 19, or even 20, but at 06:21.

The email itself does arrive instantly though, and here’s what we notice. The MAIL-FROM domain and the domain for DKIM-signing is sendgrid.net:

SendGrid DKIM

Now what happens if we add a whole domain. First, in their explanation of Domain Authentication, there’s a bit of BS:

SendGrid Domain Authentication

The likely reason SendGrid encourages you to do this is so that their domain, sendgrid.net, isn’t affected by YOUR mailings. The only way a typical recipient would know that the email wasn’t DKIM signed by the same domain is if they paid attention to theGmail “via” line, and if anything it would say “sendgrid.net” which is fairly well-known and trusted. People mark email spam because of the content, not because of the domain from where it originated.

Sloppy UI testing. I chose “I’m not sure” for my DNS provider, and look at what it tells me:

SendGrid DNS records

I go to set up ajaygoel.net and uncheck all the options, because I want the most basic of all basic setups, I just want to quickly send “from” ajaygoel.net and be done.

SendGrid From Domain

Alright I”ll play along and set up these DNS records.

So I do, and as expected, the MAIL-FROM is now ajaygoel.net and the DKIM signature uses it too:

SendGrid DKIM and MAIL-FROM

Another UI mistake: there’s a SAVE button that doesn’t do anything, but if I uncheck and check the “default” option, it does actually get saved, so why is there a Save button that won’t activate?

SendGrid Settings

SendGrid default settings

The “default” option is a beneficial setting that I haven’t seen with any other service. It lets me use the MAIL-FROM and DKIM signing of this domain for every email I send, even the ones that aren’t “from” this domain. For example, if I know send “from” [email protected]

Boom, it worked. It just didn’t take effect right away, had to wait 2-3 minutes

SendGrid default DKIM

In case my explanation is unclear, here’s their explanation for the default domain:

SendGrid default domain

Another weird UI quirk. I set up the domain “ajaygoel.net” but it shows me the domain as em9284.ajaygoel.net…but that’s just the sub-domain it chose at random to use as the MAIL FROM domain (dkim is still signed with pure ajaygoel.net).

SendGrid subdomain

The skinny on SendGrid

Assuming you set up your SendGrid account after April 6, 2020:

  • Lots of UI quirks
  • To send anything, you have to verify an address or a domain, and verification does require an email link to be clicked on
  • If you just verify an address, SendGrid will use its own domain for MAIL-FROM and DKIM signing, which is nice because it makes you pass both out-of-the-box without any DNS records.
  • If you verify a whole domain, you’ll be forced to enter DNS records which means your MAIL-FROM and DKIM will be based on your own domain.
  • So if you want stake your deliverability on SendGrid’s domain reputation and not your own, don’t verify a whole domain, just verify individual addresses @ the domain
  • A useful feature i haven’t seen elsewhere (except for Amazon SES), is the ability to set a default domain once you verify a domain so that ALL MAIL, EVEN FROM @GMAIL.COM WILL BE SIGNED AND USE MAIL FROM OF THAT DOMAIN. except for any other domain that you’ve verified individually

Grade: B

Their sending infrastructure is really nice, and they have the best automated systems to review accounts and make sure you’re sending legit mail. You don’t have to tell some support human what you’re sending so that they let you send the limits on your plan. They are such a big company now that their huge dev team is likely a hindrance. Their web UI team isn’t as good as their SMTP infrastructure team and perhaps they don’t work well together, which is the reason for all the UI quirks. Their back-end has some bugs, as evidenced by the irrelevant PTR record error when trying to send to my domain @emailtest.io.

SendGrid punishes you for sending high volume email over their shared IPs. How? Their “Essentials 100K” plan lets you send 100,000 emails for $30/month, which comes to 3/100 of a penny per email. In other words, for one cent, you can send about 30 emails. But if you go over 100,000 emails, it’s $0.0023 per email, which means 0.23 cents per email, and .23 cents is about 8x the original rate you pay. Now that’s an overage rate if I’ve ever seen one.  I personally send about 4,000,000 emails through their shared IPs, on behalf of my users, every month. This results in a bill of over $4,000 every month. You would think that the price per email goes down as volume increases, but with their shared IP plan, the opposite is true.

Read my non-technical SendGrid review.

Amazon SES

(back to top)
Before you can send anything with SES, you have to verify a new domain and get yourself out of their “sandbox”, otherwise you get this:

Amazon SES sandbox

So I’ll go ahead and verify “ajaygoel.net”

Amazon SES verify new domain

Turns out that recipients have to be verified too, when you first start out, because you start out in Amazon SES Sandbox mode

Amazon SES send to verified addresses

Can’t do much testing until I get out of the sandbox. IT took less than 24 hours to get out of the Sandbox. In fact, I had only asked for 1,000 emails/day, and to my pleasant surprise, I was granted 50,000 emails/day.

Amazon SES sending limit

Now let’s explore the service.

Looks like even out of the sandbox, every address/domain you want to send “from” has to be verified. If you don’t, you get this error. Here’s me sending “from” [email protected].

Amazon SES send from verified address

And here’s me trying to send “from” an @gmail.com account:

Amazon SES verify gmail address

Weird quirk — when I go to verify an individual email address, it sends a verification email to that address, BUT it states that it may take up to an hour. An hour? Amazon operates its own darn transactional email service, and it can’t send its own transactional email right away? weird.

Amazon SES verification email

In reality, the email arrived right away, so that makes the message all the more strange.

After verification, I CAN send from my @gmail.com account.

Amazon SES gmail send address

And the resulting email is DKIM signed by the domain amaoznses.com with a MAIL FROM of @us-west-2.amazonses.com

This is to be expected, since with a from address that is gmail.com, there’s no way for DKIM or MAIL-FROM to be off my own domain, unless it let me set a general domain for DKIM signing and MAIL-FROM for these purposes that isn’t gmail.com.

Amazon SES DKIM from gmail

Anyway, I have also verified ajaygoel.net, so what does that look like?

Simply verifying it just allows me to send the email, and doesn’t alter the MAIL-FROM OR the DKIM signing away from amazonses.com.

Amazon SES DKIM

How can I control the MAIL-FROM and DKIM signing?

It walks you through a process of controlling the MAIL-FROM:

Amazon SES set MAIL FROM domain

Interestingly though, it doesn’t let you use your ROOT domain as your MAIL-FROM, YOU HAVE TO create a sub domain. I’ll choose ses.ajaygoel.net

You add the MX and click the “verify” link and you’re all set.

Amazon SES subdomain

Now let’s test again.

Now the MAIL-FROM IS ajaygoel.net

Amazon SES mail from custom domain

It’s still DKIM-signed by amazonses.com, but we can fix that.

Fixed, and now, SES signs it twice, once with its own domain of amazonses.com and once with my domain ajaygoel.net

Amazon SES DKIM from domain

 

So, pretty good overall. Once verified, you can send “from” anybody, and SES will use its own MAIL-FROM and DKIM sign using its own domain.

For the DKIM setup, it gives you 3 CNAME records to enter;

Amazon SES CNAME

I wish:

  1. I could send “from” without the complex verification procedures per email address and per domain.
  2. I could sign all my emails with any domain that I’ve verified with them, even if the “from” isn’t for that domain.

The UI is fantastic, as is most of AWS

Weird though that you can’t copy/paste those DNS records, like you can easily copy/paste IP addresses and and other identifiers throughout aWS.

Grade: B

 

See why GMass has 300k+ users and 7,500+ 5-star reviews


Email marketing. Cold email. Mail merge. Avoid the spam folder. Easy to learn and use. All inside Gmail.


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


Are you looking for some great Outreach.io alternatives?

While Outreach.io is a popular sales enablement platform, it has several flaws. For example, Outreach.io is very expensive and can be complicated to use for many people.

In this article, I’ll highlight three great sales outreach alternatives you can use instead of Outreach.io.

Here’s what we’ll talk about:

What is Outreach.io?

Outreach.io interface

Image Source: www.outreach.io

Outreach.io is a Saas sales enablement platform that helps companies connect with prospects, potential partners, and existing customers. Outreach.io helps you use email and other channels to reach prospects and influencers so that you can partner with them.

Key Features

  • Advanced sales sequences (cadences) to streamline your outreach efforts.
  • Simple contact management via CSV files.
  • Detailed metrics to help sales managers track email marketing campaigns and link building activities.

The three main drawbacks of Outreach.io

While Outreach.io is a popular sales enablement platform, it isn’t perfect.

Here are the biggest disadvantages of using Outreach.io for sales outreach.

1. Outreach.io is expensive

Could you imagine spending thousands of dollars on a cold email outreach tool?

If you use Outreach.io, that could be the case!

While Outreach.io doesn’t specify their pricing model on their website, their rates start at $100/user/month. And since the pricing is per user, small teams of just ten marketing professionals can bring your bill up to $1,000/per month. 

All this for a sales outreach tool!

And that’s not all.

The $100/month rate is just for their base pricing model — you won’t get customized features unless you spend a lot more.

2. It’s complicated to use

So you’ve gotten over the $100 price tag because as long as you can get your tasks done easily, it doesn’t matter — right?

But the problem is, Outreach.io is a difficult tool for many people to use!

Your employees might have to spend a ton of time learning the interface before they actually start using it.

Not only does this delay onboarding, but it also reduces the productivity of your employees, as they’ll waste time figuring out the tool instead of connecting with influencers through your outreach campaigns.

3. Doesn’t integrate with Google Sheets

What if I told you that sales enablement software that costs $100/month supports uploading contacts only using CSV files?

That’s exactly what you get with Outreach io. 

While most other sales automation tools can directly connect with modern software like Google Sheets for a mail merge, Outreach.io only supports CSVs.

Why is this a problem?

Any lead generation tool that integrates with Google Sheets can make your outreach workflow and marketing tasks a piece of cake!

Remember, most people use Google Sheets as their go-to spreadsheet tool now. Additionally, since Google Sheets stores everything in the cloud, there’s less chance of your contact files going missing!

However, since Outreach.io only supports CSV files, you’re forced to readjust your mail merge workflow accordingly. This can be inconvenient for most salespeople who are used to operating via Google Sheets to get their work done.

The top three Outreach.io alternatives

It’s clear that Outreach.io isn’t a perfect tool.

But what can you use instead?

Here are the three best email automation tools you can use as Outreach.io alternatives.

1. GMass

GMass homepage

GMass is a powerful cold email tool that runs inside your Gmail inbox.

GMass is used by everyone from small startups to tech giants like Google and Uber. Even social media platforms like LinkedIn Twitter, and digital marketing agencies- use GMass for their email outreach campaigns!

But GMass isn’t just for sales reps or marketing teams from big businesses!

Small startups, solopreneurs, and institutions like churches can use GMass to send out personalized emails to a targeted audience.

You can use GMass to:

  • Send emails to tons of prospects from your Gmail inbox.
  • Personalize email marketing campaigns.
  • Track how recipients interact with your emails accurately.
  • Simplify the scheduling process of bulk emails and follow up emails.
  • Set up custom tracking domains easily.

Plus, anyone can just get started with GMass!

Just download the GMass Chrome extension and sign up with your Gmail account.

Key features

Here are a few reasons why GMass is one of the best automation tools available.

A. Advanced personalization of emails

If you really want your sales leads to convert, you can’t rely on generic email templates.

Why?

Would you rather interact with generic outbound email campaigns or personalized emails that are tailor-made for you?

But you can’t customize your bulk emails for hundreds of recipients manually, right?

That would take forever!

That’s why you use GMass.

GMass uses automated email personalization to help you send personalized mass emails to all your sales leads.

Here’s how GMass can help you send personalized emails automatically:

  • Automated First-Name Detection and Entry – GMass can find a recipient’s first name from their email address and add it to an outbound email sent to them.
  • Add Customized Paragraphs – GMass can individually personalize blocks of text based on the recipient.
  • Personalize Images and Links – Customize images and links for each recipient. (GMass does not support personalized video yet. Stay tuned!)

GMass interface showing personalized email

Click here to learn how to send personalized emails.

B. Campaign Reports and powerful analytics

Whenever you use GMass to send an email outreach campaign, it generates a Campaign Report for your sales managers.

This campaign report highlights the email metrics your sales managers need to measure email campaign performance.

Understanding these analytics can help you fine-tune your emails to increase deliverability and reduce bounce rate!

Additionally, you can utilize these insights to diversify your prospecting activities and improve your sales cycle, which will help increase your sales leads.

Here’s a look at some of the email analytics you can find in a Campaign Report:

  • No. of Recipients:
    Shows the total number of email addresses to which you’ve sent your outbound campaign.
  • No. of Unique Opens:
    Shows the number of unique addresses that opened an email you sent.
    Note: You only get accurate email statistics that show unique opens. It doesn’t show if recipients open emails after their initial open.
  • No. of Unique Clicks:
    The number of unique recipients that clicked at least one link in your email.
  • No. of Replies:
    Number of unique recipients that responded to your email.
  • No. of Unsubscribers:
    Number of users that unsubscribed from future emails.

GMass interface showing Campaign Report

But that’s not all!

Most other cold email prospecting tools (like Ninja Outreach) require you to open a separate tab or app to manage email campaigns. However, GMass puts all your Campaign Reports right inside your inbox.

You can access these reports from the [CAMPAIGNS] label in your sidebar!

C. Easily create large email lists

You can’t manually send out thousands of emails every day, right?

Thankfully, GMass can automatically send out as many emails as you like.

Sure, you can use an Excel file or CSV database to create a mail merge, but that’s not GMass’s best feature.

GMass also works directly with Google Sheets.

Just use an email finder to find the emails of your prospects or influencers and upload them onto a Google Sheets file. Then just instantly connect it to GMass to build an email list!

GMass also has a feature that helps you easily Build Email Lists. Just perform a search for the keyword, and GMass will automatically build an email list with the corresponding search results.

GMass interface showing Build Email Lists feature

D. Automate follow-up emails

Some of your sales leads won’t respond to your first email.

So what can you do?

Send follow up emails!

But sending out hundreds of follow up emails manually can take a lot of time.

Just let GMass automate them instead!

You can even customize these follow up emails however you want:

  • Set the trigger to send the follow-up email.
    For example, GMass can automatically send a follow-up when a recipient clicks on a URL embedded in your email.
  • Decide on how many follow-up emails each prospect receives.
  • Schedule the time gaps between each follow-up email.
  • The message to be included in the follow-up email.

GMass interface showing follow-ups

E. Schedule emails easily

Timing your emails is super important.

Your emails should reach prospects just when they’re about to check their inbox.

But you can’t expect small teams of employees to stay online all the time to send out emails, right?

Don’t worry!

GMass lets you schedule emails well in advance so you can maximize engagement rates.

Just write your email and schedule it.

Let GMass worry about the rest.

How does this feature help you?

  • You don’t have to stay up to send email campaigns and follow up emails to prospects.
  • You can plan outreach campaigns well in advance.
  • You can plan to send out personalized emails to prospects when they’re most likely to check their inbox.

But what if there’s a change of plans?

Don’t worry!

Just reschedule your email in the Drafts folder.

GMass interface showing scheduling window

 

Pros

  • Simple, easy to use interface.
  • Works inside the Gmail platform.
  • Build email lists quickly using any search criteria.
  • Helps to easily import contact data from a Google Sheets file.
  • Emails can be reused as templates for future email marketing campaigns.
  • Supports sending emails with attachments in mass emails.
  • The platform has a Zapier integration for easy email automation.
  • Offers an add-on app for Android.
  • Helps optimize email deliverability for emails.
  • Helpful customer support team.

Cons

  • You can only use GMass with a Gmail or G Suite email account.
  • The desktop version only supports Google Chrome.

Pricing

GMass comes with three pricing plans:

  • Individual:
    • Standard: $25 per month or $225 annually. Includes unlimited emails, contacts, and campaigns. Plus mail merge personalization, Spam Solver, and dozens of other features.
    • Premium: $35 per month or $325 annually. All Standard plan features, plus auto follow-up sequences, API access and Zapier, and triggered emails.
    • Professional: $55 per month or $525 annually. All Premium features plus GMass MultiSend for inbox rotation and high-priority support.
  • Team:
    • Professional: starts at $145 per month for a team of five – supports all features.

Customer Ratings

  • G2 Crowd – 4.8/5 (300+ reviews)
  • Capterra – 4.9/5 (300+ reviews)

2. Woodpecker

Woodpecker interface

Image source: woodpecker.co

Woodpecker is a Saas email outreach and mail-merge tool mainly used by Microsoft Outlook and Gmail users. This marketing automation tool can also double as a good lead generation tool, as it helps you conduct lead management tasks efficiently.

Key Features

  • Can help you send automated follow-up emails.
  • Helps to send personalized bulk emails with custom fields.
  • Generates detailed reports that track email opens, click-through rate, etc.
  • Supports automated drip campaigns and replies.
  • Works with email clients such as Microsoft Outlook and Gmail.

Pros

  • Offers businesses custom lead management features.
  • Helps identify duplicate email addresses in campaign emails.
  • Offers a Google Chrome extension to engage in prospecting easily.

Cons

  • Doesn’t support email attachments for mass emails.
  • Relatively expensive base plan.
  • No free email tracking available.

Pricing

Woodpecker cold email starts at $29/month for very limited contacts.

Customer Ratings

  • Capterra – 4.8/5 (10+ reviews)
  • G2 Crowd – 4.5/5 (20+ reviews)

Click here for a detailed review of the Woodpecker email tool.

3. Hubspot Sales

Hubspot interface

Image source: hubspot.com

Hubspot is another Saas sales tool that can help streamline your marketing workflow. It’s used by many sales professionals around the world as a reliable sales management tool. It’s not ideal for cold email purposes, but it provides other powerful sales marketing automation features.

Key Features

  • Helps you send automated follow-up emails.
  • Provides a built-in activity stream that automatically logs each lead’s history.
  • Helps streamline prospecting and link building activities through lead-scoring.
  • Provides access to customizable reports for tracking campaign engagement.
  • Can link to Hubspot CRM to manage contacts easily.
  • Attentive customer support.

Pros

  • Design customized email templates and share them with sales teams to streamline your sales process.
  • Offers a drag-and-drop sales pipeline editor.
  • Supports integration with HubSpot CRM, Salesforce, and other prospecting tools.
  • Attentive customer success team.

Cons

  • Configuring your sales workflow can be confusing.
  • Not suitable for cold email purposes –  it goes against Hubspot Sales user policies.
  • The basic starter plan lacks several key features and functionalities.

Pricing

Hubspot Sales tracking software offers four pricing plans:

  • Professional: $450/month – includes sales automation + Salesforce integration + ” Starter” perks.
  • Enterprise: $1500/month – includes “Professional” features + team management and lead management.

Customer Ratings

  • Capterra – 4.5/5 (2000+ reviews)
  • G2 Crowd – 4.3 /5 (600+ reviews)

Conclusion

Outreach.io is marketed as a powerful sales enablement tool, but it’s not perfect.

Its plans are expensive; it’s complicated to use and can’t directly connect with key software like Google Sheets.

Why settle for something like Outreach.io when the other tools mentioned in this article could be better options for your business?

While all of the Outreach io alternatives here have something to offer, GMass is the best tool among them. It has everything you need to reach your sales leads effectively and boost business performance.

Why not download the GMass Chrome extension today and give it a try?

Email marketing, cold email, and mail merge inside Gmail


Send incredible emails & automations and avoid the spam folder — all in one powerful but easy-to-learn tool


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


Is Yet Another Mail Merge the right email marketing platform for you?

This Yet Another Mail Merge review will help you find out if it’s a good fit for your email marketing campaign needs or not.

I’ll cover its features, the Yet Another Mail Merge pricing plans, and its drawbacks to help you make a decision. I’ll also highlight the best YAMM alternative in 2020 for all your email marketing needs!

Here’s what this Yet Another Mail Merge review contains:

(Click on the links to jump to a specific section)

Let’s get started.

What is Yet Another Mail Merge?

Yet Another Mail Merge homepage

Yet Another Mail Merge (or YAMM) is a Gmail mail merge tool available in the Chrome web apps and the Google Sheets add-on store. It uses the Gmail API to automate tasks and lets you send emails to multiple recipients.

It integrates with Gmail/Google Workspace and your Google Sheet to help you send a mass email from the Google platform itself. 

Yet Another Mail Merge Pricing Plans

Yet Another Mail Merge pricing includes:

  • Individual plans:
    • Basic: free plan – send up to 50 emails per day for one Gmail account.
    • Gmail.com Personal: $250/year – send up to 400 emails per day for one Gmail account + scheduling features + tech support.
    • Google Workspace Professional: $50/year – send up to 1500 emails per day for one G Suite account + scheduling features + tech support.
  • Team:
    • Enterprise: $150/year – send up to 1500 emails/day per user with support for 10 Gmail users.

3 Key Features of Yet Another Mail Merge

Here’s a quick look at the main features of Yet Another Mail Merge:

1. Seamless Email Personalization

Yet Another Mail Merge functions as a powerful mail merge add-on that lets you send personalized emails to multiple recipients to boost email engagement.

To send personalized emails in YAMM, you can add recipient data from a Google Sheets file to a YAMM email template. However, your Google Sheet must be properly formatted for mail merge to work.

How do you format each merge field correctly?

Each row in the spreadsheet should contain the records in your email list, and each column should be a personalization label, like:

  • First name
  • Company name
  • Address

These labels act as placeholders for the recipient data in individual emails that YAMM adds automatically. This way, you can use YAMM to send customized emails to your email list easily.

2. Send and Track Email Campaigns

Sure, Yet Another Mail Merge lets you send personalized email campaigns to hundreds of prospects with its mail merge feature.

However, that isn’t all.

You can also use YAMM to track your campaign’s performance to analyze deliverability and identify improvements for future email campaigns. However, your campaign will be tracked only if you’ve enabled tracking for it.

Once you’ve enabled email tracking in YAMM, a tracking report is auto-generated each time you send a campaign.

This report includes various metrics, like:

  • Email open rate: the percentage of emails opened in a specific campaign.
  • Click through rate: the ratio of recipients who clicked a link in the email to the total number of recipients who opened the email.
  • Bounce rate: the percentage of emails that were undelivered in a specific campaign.
  • Merge status: displays various mail merge statuses like sent, opened, etc. for each recipient.

This tracking report will automatically open up on your spreadsheet’s right sidebar after you send a campaign.

The 3 Drawbacks of Yet Another Mail Merge

While Yet Another Mail Merge is a great tool, it isn’t perfect. Most features you’ll find in other platforms are missing. Beyond those missing features, here are the three main disadvantages of using YAMM:

1. Email Tracking Is Complicated to Use

While YAMM tracks many useful email metrics, the email tracking function can be complicated to use.

Why?

This happens due to several reasons:

  • Receipts (tracking records) are only stored for the past ten days
    Yet Another Mail Merge only stores records for up to ten days. If you sent your campaign 20 days ago but didn’t open the Google spreadsheet reports within the ten-day period, you won’t be able to retrieve those records.
  • Tracking isn’t automated
    Remember, to track a campaign, you must enable tracking when you start mail merge. If you forget to do this, your campaign won’t be tracked once you hit the send button — preventing you from analyzing your mail merged email’s engagement.
  • Campaign stats aren’t available in your inbox
    YAMM stores campaign stats in the Google Sheets spreadsheet you link during the mail merge process. This complicates campaign analytics, as you need to keep track of each campaign’s unique Google spreadsheet in your Google Drive.

These factors make YAMM’s analytics pretty complex to manage!

2. Lacks Support for Mobile Devices

Mobile accessibility is essential for any email marketing professional today!

Why?

You need to be able to track emails on the go and have access to your mail merge tools anytime, anywhere.

However, Yet Another Mail Merge does not yet support mobile apps. Whether you need an iPhone, iPad, or Android app — YAMM doesn’t have it.

3. Can’t Bypass Gmail Sending Limits

Yet Another Mail Merge does not integrate with third-party apps like SendGrid to bypass Gmail mail sending limits.

Its sending quota only allows you to send 400 individual emails per day with a Gmail account, and 1,500 emails per day on a G Suite account.

Why is this a problem?

These sending limits are extremely low for mass email campaigns — which severely limits your campaign engagement and potential conversions.

The Best Yet Another Mail Merge Alternative

While Yet Another Mail Merge is a good email marketing platform, it has several drawbacks.

Luckily, GMass is a great tool for mail merges in Gmail that can take care of all of those challenges!

What is GMass?

GMass homepage

GMass is a powerful email marketing platform for Gmail users that lets you send and manage email campaigns within your Gmail inbox. Its mail merge features have made it a popular outreach tool used by employees from giants like Twitter, Google, LinkedIn, and Uber.

However, GMass isn’t just for sending a massive email marketing campaign!

This mail merge tool is also used by institutions, clubs, churches, solopreneurs, and small businesses to create and send emails to a target audience!

GMass helps you:

  • Track email campaigns automatically.
  • Send emails and campaigns to multiple recipients.
  • Personalize individual emails for your entire email list.
  • Schedule multiple emails in advance.

The best part?

Getting started with GMass is super easy — just download the GMass Chrome extension from the Chrome add-on store and sign up with your Google account.

It’s that simple!

Why GMass is Better than Yet Another Mail Merge

Here’s a look at the features that make GMass the perfect YAMM alternative:

1. Automated and Advanced Email Analytics

GMass auto-generates a Campaign Report after you send an email campaign. It highlights real-time email stats to help you analyze your campaign engagement with ease. This way, you get all your stats without worrying about manually setting up anything before your mail merge.

The Campaign Report includes stats like:

  1. Total Recipients: The number of email addresses to which you sent your email campaign.
  2. Unique Email Opens: The number of unique email addresses that opened your email.
    Note: GMass only tracks unique email opens for accurate email metrics. If a recipient opens the same email twice, the report won’t show these as two different email opens and inflate your results.
  3. Didn’t Open: The number of recipients who did not open your email.
  4. Unique Clicks: The number of unique email IDs to click on at least one link in your email.
  5. Replies: The number of recipients who replied to your email.
  6. Unsubscribes: The total number of recipients who unsubscribed from your emails.
  7. Bounces: The total number of emails undelivered as they were sent to invalid email addresses.
  8. Rejections because your Gmail account is over-limit: The total number of emails that were not delivered as you reached the email sending limit of your Google account.
  9. Blocks: The number of emails undelivered as the email ID marked your Google account as spam.

GMass interface showing campaign report

What’s more …

Unlike most other email applications like Yet Another Mail Merge, GMass displays the Campaign Report right inside your Google inbox. Instead of opening a separate interface or spreadsheet to check your reports, you can quickly access them from the Gmail sidebar!

2. Gmail Add-on for Mobile Accessibility

Thanks to its Gmail Google add-on, you can instantly access GMass from any of the Android devices you use.

How does this help?

After installing the add-on, you can use GMass on any Android phone while you’re on the move.

You don’t need your computer to manage your email marketing or merge tool anymore. Just log in to your Gmail account to access all your GMass email campaigns on any device!

3. Unlimited Email Campaigns

Unlike Yet Another Mail Merge, GMass doesn’t limit the number of emails you can send every day.

How?

GMass can integrate with third-party services like SendGrid to bypass the Gmail mail sending limits. In fact, the GMass team uses this integration to send newsletters to over 400,000+ recipients!

What’s more …

GMass offers mail merge and email campaign features in all its pricing plans (including the free version). No matter what your budget or company size is, you can send bulk email campaigns!

5 Other Handy GMass Features

1. Automated Follow-Ups

Sometimes you need to send follow-ups to boost your campaign engagement.

However, this can be tedious and time-consuming when you’re sending tons of mass emails.

Imagine manually following up on hundreds of prospects!

Luckily, GMass automates the process of sending follow-up emails to help you engage your prospects.

Instead of manually sending each follow-up, you can automate them with several customizations like:

  • The trigger for sending a follow-up email in Gmail.
    For example, when a customer opens your email, you can send them a follow-up instantly.
  • The number of follow-ups sent to each person.
  • The time period between each follow-up email.
  • The content of the follow-up email

GMass interface showing follow-up stages

2. Powerful Email Personalization

If you want better email conversions, you need to send personalized emails in your outreach campaigns.

Think about it.

What are you more likely to engage with:

Generic mass marketing emails?

Or customized emails that cater to your individual needs?

However, you can’t manually create hundreds of customized emails!

That will take you forever!

Luckily, GMass automates this process for you.

And unlike some other tools, you won’t have to create a separate Google Apps script, Microsoft Word document, or Excel spreadsheet for this!

Here are the step-by-step instructions for creating mail-merged emails in GMass:

  1. Add all your recipient data to a Gmail Google Sheets file.
  2. Connect it to GMass.
  3. A pop-up window displaying your Google spreadsheets appears.
  4. Select the corresponding Google Sheet from a drop-down menu to import data.
  5. Use personalization tags to insert recipient data to your email quickly.

GMass interface showing mail merge automation

But that’s not all.

You can even personalize your email draft with additional features like:

  • Personalized blocks of text: send customized emails by personalizing entire blocks of text for your recipients.
  • Automatic First-Name Detection and Entry: GMass can auto-detect the first name of your recipients (including your Google contacts) from their email address.
  • Customized Images and Links: send customized emails by adding custom images or URLs for each email recipient.

GMass interface showing personalized text

Note: If you prefer using a Microsoft Excel sheet or a Word mail merge, check out this simple tutorial for step-by-step instructions on how to do it in GMass.

3. Automated Email Scheduling

GMass supports instant scheduling for every email marketing campaign.

How does this help?

Prospects are more likely to engage with customized emails that are sent when they’re checking their inbox.

However, to send each email manually at the right time, you’d have to be online 24/7!

Luckily, GMass makes it easy to schedule bulk email for a large contact list.

Just create your email draft and schedule the sending time.

GMass then automatically sends the email at the set time — you don’t need to be online when the emails sent!

What’s more …

Rescheduling email messages is a piece-of-cake. If there’s any change in schedule, you can easily reschedule each email draft right from your Google Drafts folder!

GMass interface showing scheduling window

4. Custom Tracking Domains

Custom tracking domains help you boost your email deliverability.

How?

Most spam filters categorize certain domains as spam. If your email is sent from one of these flagged domains, they’ll be immediately filtered into your recipient’s spam folder.

Luckily, GMass makes it super easy to create a custom domain that you can use specifically for sending email campaigns. This way, as it’s a personalized domain, it won’t be flagged, and your campaign deliverability significantly improves!

5. User-Friendly Pricing Plans

GMass’ affordable pricing plans offer tons of features at a very user-friendly price point.

Here’s a closer look:

  • Individual:
    • Standard: $25 per month or $225 annually. Includes unlimited emails, contacts, and campaigns. Plus mail merge personalization, Spam Solver, and dozens of other features.
    • Premium: $35 per month or $325 annually. All Standard plan features, plus auto follow-up sequences, API access and Zapier, and triggered emails.
    • Professional: $55 per month or $525 annually. All Premium features plus GMass MultiSend for inbox rotation and high-priority support.
  • Team:
    • Professional: starts at $145 per month for a team of five – supports all features.

Don’t have a credit card?
No problem!

GMass accepts payments by PayPal as well!

Conclusion

Sure, Yet Another Mail Merge is a great tool, but it’s far from the perfect email marketing software.

As seen in this Yet Another Mail Merge review, YAMM’s email tracking features are complicated to use, and its campaign sending limits are too low for many businesses!

Why settle for that when you have a superior mail merge tool like GMass instead?

GMass gives you tons of powerful features for all your email marketing needs.

So why not download the GMass Chrome extension today and try it out for yourself?

Email marketing, cold email, and mail merge inside Gmail


Send incredible emails & automations and avoid the spam folder — all in one powerful but easy-to-learn tool


TRY GMASS FOR FREE

Download Chrome extension - 30 second install!
No credit card required
Love what you're reading? Get the latest email strategy and tips & stay in touch.
   


GMass