There are about 500 websites telling you how to warm your server. There are about 500 companies that will “warm” your IP/domain for you. I was the first person to start warming, back before it was a thing. This is super important…Automated warming does not work!!! Don’t waste your money. 99% of the companies that will warm your ip or warm your domain are going to automate this process for you. Step back and think like Google. Do you think that Google is so stupid that they can’t detect BOT warming? Hell, even Yahoo figured that out YEARS ago. Why would Google be so far behind? Also, if you think paying somebody like $20 to warm a server is going to do anything….You got another thing comming!

That $20 will do one of two things: 1) …and this is the best case. It does NOTHING. 2) It harms your reputation. Usually 2 happens and you are dead in the water. You want REAL people engaging with your content. Step back for a moment though. I do real people warming, but I’m not here to push the service. You could do it yourself, but it takes some time. Let me explain the process.

The idiot list.
note: Only do this with GMail.

Yes. The idiot list. These are the people that ALWAYS open your emails, no matter how spammy. But most importantly, they are opening from SPAM! Let me explain how to do this.

Step 1) Buy a cheapo VPS literally anywhere.
Step 2) Buy a junk domain…it can be .anything. Don’t even worry about paying the “high price” of a .com. Get whatever is cheapest.
Step 3) Grab yourself a copy of MailWizz. It’s junk, and I mean that in a “you gotta do lot of shit to make it scale”/horrible fingerprint, but it gets the job done.
Step 4) Pay some dude on fiverr like $5 to setup a mail-server for you with said domain. Note: They all have hacked versions of PMTA. It’s seriously a dime a dozen service.
Step 5) Mail the spammiest creatives that you can think of to a a list (I’m assuming you have a list, if not, you can get a list dirt cheap too)

The goal is to blast the HELL out of these people for 2 weeks. Mailing them 3x/day. You might need a few more servers. OH and ONLY mail GMAIL on this!!! I can’t tell you how important that is.

At the end of the week, you are going to need a report. You might have to go back to the same guy on fiverr if you aren’t technical yourself. You specifically want 2 reports in descending order..one of openers and one of clickers. It should tell you how many times each person clicked. Your cutoff should be a min of 3 (The higher the better).

List example:

email, count
asd@gmail.com, 12
sdfg@gmail.com 11

You get the idea. When you are done, this is your warming list going forward. These people are going to help you more than you can ever imagine. You’ll want to mail them out on their own and/or at the beginning of your email list when you do a blast. You should mail them stand-alone until you build some good reputation (both IP and Domain) on Google Postmaster Tools. The goal is to get a list of ~500. The more the better (1k is ideal).

Warming Verizon (Yahoo, AOL, Verizon)

If you have good data, you can folliow a conservative warmup schedule. Increasing by 20% daily then when you get to 250k, you can start adding 50k/day. You NEED to be at ~0.025 to consistently inbox. You can live at .05 with minor issues, but if you are consistely above this, you need more IPs. If you can load balance IPs, you’ll have far less problems. PMTA (Power MTA) knows how to do this automagically for you. Basically when you start getting 4xx responses back, you can have it do a backoff and then proceed to the next IP. DON’T BUY SHIT TONS OF IPS! You’ll want to go slow with less IPs 4-8 are more than enough. Going slow is the key here. And please make sure you have your fbls (feedback loops) setup.

It generally takes 6 months to get a list down to the .025 complaint rate. Assuming that you aren’t going above 0.1% (I know I said 0.05%, but you can survive at 0.1%). Just keep mailing daily. Never stop mailing. Even if you aren’t selling something on that given day, just mail them something.

Warming Outlook

Emails go to spam. You mail again, still in spam. Plan on spending 2 weeks to 1 month in spam. I’m not even kidding. M$ has to be the shittiest provider on the list. There was a lawsuit years back where they got hacked…massively. Ever since then, they’ve decided that you are guilty until proven innocent. It sucks massively! Again, this is something I offer warming for. Throwing real people at the problem works really well, unless you have a list. You have to actually reach out to M$. Another option is paying off a crooked postmaster. I haven’t done that. Not because I’m morally against it, but becuase they always get caught and lose their jobs. And then you have to rinse and repeat the process again with the next guy. Because M$ pays so poorly to their poor Indian postmaster team, it’s rife with corrruption. I don’t advocate this…

Warming Cables

Shit piles of IPs. Go slow. This SHOULD be your bread and butter. Most cable mailers do great. I don’t have much to say, except when you have that day or two where all your responses are 5xx. Those days SUCK. But things always get better.

Warming General Internet GI

You are probably mailing Gmail or Outlook. I’d suggest checking for an MX and categorizing. I mean, if you write something, make sure you are running your own BIND server instead of SLAMMING whatever DNS server you are on. At any rate, here’s some code to at least start you on your journey. You can turn up the ThreadPool if you like. Ultimately, you are going to have to figure out what domain belongs to what service provider, but overall your server should know how to rate-limit for each TLD.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# pip install dnspython3

import dns.resolver
from multiprocessing.pool import ThreadPool
import argparse

def getMX(line, buff):
    results = ['INVALID']
    if line:
        domain = [j.split('@')[-1] for i, j in enumerate(line.split(',')) if '@' in str(j)]
        try:
            answers = dns.resolver.query(domain.pop(), 'MX')
            results = [answer.to_text().split(' ')[-1] for answer in answers]
        except:
            pass # bad record
    return line + ',' + ','.join(results)+'\n'

def main():
    parser = argparse.ArgumentParser(description='Get the MX records from your email list.')
    parser.add_argument('-l','--list', help='Your email list, in CSV form.', required=True)
    parser.add_argument('-o','--output', help='Output of the appended report.', required=True)
    args = parser.parse_args()

    f = open(args.list, 'r')
    lines = f.readlines()
    f.close()

    pool = ThreadPool(10)

    results = []
    for line in lines:
        results.append(pool.apply_async(getMX, args=(line.strip(), None)))

    pool.close()
    pool.join()

    results = [r.get() for r in results]

    f = open(args.output, 'w')
    for result in results:
        f.write(result)
    f.close()

if __name__=='__main__':
    main()
1
2
3
4
5
6
7
8
9
Usage:

# python3 -m venv venv
# source venv/bin/activate
# pip install dnspython3

# python email_mx.py -l mylist.csv -o new_mylist.csv

# python email_mx.py -h

The most important information that I can give you when you warm your emails servers is to GO SLOW! Throttling is great! If you want to be overly cautious, I would suggest rate limiting outgoing messages to a maximium of 4/second. Atleast for your very first blast. Gmail is far more forgiving than the Verizon Trinity (Verizon, Yahoo, AOL). I would go with 4-8 IPs to start out. Make sure that they are configured to carry over if there’s a 4xx queue going on. Watch your logs for any 5xx errors.

In a perfect world, you could just follow some arbitrary warmup guide. But, you really have to watch your logs. 4xx is normal, you’ll get them. Just watch your complaints for all non-gmail TLDs. If your complaints are greater than or equal to 0.05, then hold that volume for a few days until you see the complaints drop.

If you really want a guide, here’s the safest one I can suggest…BUT WATCH YOUR COMPLAINTS, this isn’t like something magical, rather it’s just good advice.

Day 1: Mail 5k
Day 2: Increase by 20% daily

Day X: When you are at 250k, increase by 50k at a time.

Never send more than 1 million per IP. I mean, you can. I certainly wouldn’t suggest it though, unless you like having ALL your eggs in one basket.

90% of you will be super frustrated and swear that there’s some black magic that can make your email campaigns work out. MAAAAAN I wish there was something I could tell you there. True story. A big company likes to spam, because it makes them a lot of money. They offered me $1 million dollars every month to keep them in the inbox. I could pretend that I took the higher road and said “It can’t be done”. I lost about a year of my life to trying to black-magic the impossible for them. It didn’t work. Everybody was pissed at eachother. I tried. It kinda worked for a while, but BOY do they send shitty emails. I call it spam, it’s not though, it was opt in emails. So, yeah, there’s literally only so much that you, or anybody else can do.

You’re still reading. We should get a beer sometime.