Receive email with Mailwip IMAP server(beta)

Hanami primary focus is email forwarding for receiving to an external mailbox. But what if you want to retrieve email directly without relying on a third party service. We already offer a SMTP service to send email out through your domain, so to help our user fill this piece we offer an IMAP service.

Some hanami users received a lot of automated emails and get rate limited by gmail, for that they rely on hanami ability to store and read emails. Use our IMAP service, they can read email with an email client such as Apple Mail app, Thunderbird, or even Gmail mobile app.

Note that Hanami focus isn't to offer a full hosted email solution with webmail, calendar, etc. For that, we think gmail.com is the best. We simply want to offer an IMAP as a convenience to our users since they already paid for SMTP access.

Beside receiving email with IMAP, we also offer a few other methods to check email

  • Maillog: through our web ui or our REST API
  • Webhook: allow you to get a copy of your email via a HTTP request

If IMAP is your prefer method then below are the detail

Setup IMAP

IMAP credentials are same with SMTP. Follow SMTP configuration to create your SMTP credential. Once you have the SMTP credential, you can setup IMAP with below configuration:

Host Port TLS
imap.mailwip.com 993 Yes

Configure Apple Mail

In Mail app preference > Accounts tab, Click "+" button to add a new account.
Click "Other mail account"
In the next screen, enter full smtp credential and password.

Click sign in, it will fail, no worry. That's Mail app behaviour. Re-fill the information, choose Account Type as IMAP and enter imap.mailwip.com and smtp.mailwip.com. Make sure to enter full your smtp account including the domain name.

And that's it. You will be able load mail with Mail app.

Limitation

During beta period, The first time ever an IMAP sync is initiate, we only returns the last 2000 emails so you might not be able to see old email. We will remove this restriction on July 4th when we fully rolled out of this feature to every users.

Access IMAP programmatically

Example code using Ruby

require 'net/imap'

imap = Net::IMAP.new('imap.hanami.run', port: 993, ssl: true)
resp = imap.authenticate('PLAIN', 'smtp_name@yourdomain.com', '1234567812345678')

p imap.create("vinhtest") resc

resp = imap.examine('INBOX')
p resp


imap.list("", "%").each do |m|
  p m.inspect
end

imap.select('INBOX')

imap.search(["RECENT"]).each do |message_id|
  envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]

  puts "#{envelope.from[0].name}: \t#{envelope.subject}"
end