20 April adalah hari ulang tahun saya. Seharusnya menjadi hari yang indah, namun tidak. Saya ditelepon tim, sistem tidak bisa mengirimkan invoice PDF. Di Inbox email, tidak ada email berisi invoice PDF dari bisnis pendaftaran online yang saya kelola.

Dan benar, saya mencoba melakukan pendaftaran online, tidak ada email yang terkirim. Saya cek lebih lanjut ke sistem, apakah ada invoice yang tergenerate, dulu pernah juga terjadi masalah seperti ini. Sistem gagal menggenerate invoice karena server bermasalah Ternyata sistem tetap generate invoice, berarti masalahnya bukan disini. Masalahnya adalah sistem tidak bisa mengirimkan email.

Penelusuran masalah berlanjut. Saya melakukan pengecekan, alamat email yang saya gunakan untuk mengirim invoice PDF adalah beralamat di domain saya atau xxx@domainsaya.com menggunakan Google Apps. Dan setelah membuka troubleshoot Google Apps, voila. Memang ada update per 20 April

Apps Google
Sungguh bukan hadiah ulang tahun yang saya harapkan.

SPF dan DKIM

Oke, masalah sudah ketemu, sekarang saatnya mencari solusinya. Setelah googling kesana kemari dan tersesat dalam hutan rimba informasi, ternyata mengenai pengiriman email menggunakan aplikasi, ada protokol/tahapan yang harus dipenuhi, agar provider email besar seperti @gmail.com, @yahoo.com dan @hotmail.com bisa menerima email atau masuk ke inbox. Protokol tersebut bernama DKIM (DomainKeys Identified Mail) dan SPF (Sender Policy Framework).

Saya pun melakukan setting sesuai petunjuk di knowledge base qwords (provider hosting)

  • Enabled SPF
  • Enabled DKIM
  • Update Record di TXT di Advanced DNS Editor

Kemudian saya mencoba melakukan pendaftaran online. Hasilnya nihil, sistem tetap tidak bisa mengirimkan invoice.

Baca Resource Lain Mengenai SPF dan DKIM yang berbahasa inggris

http://www.labnol.org/internet/authenticate-google-apps-email-with-spf/13877/

http://www.techrepublic.com/blog/google-in-the-enterprise/reduce-spoofed-email-from-your-domain-with-dmarc/

Disable Google Apps

Sistem tidak bisa mengirim, masih ada masalah. Saya kemudian ingat, saya menggunakan Google Apps sebagai Mail Client domain saya. Masalah ini pun bermula gara-gara update di Google Apps.

Mungkin jika google Apps di disable, masalah ini selesai

Oke deh, saya disable aplikasi google apps dengan merubah MX Entry. Saya kembalikan MX Entry ke default semula dengan alamat domain. Bukan aspmx.google.com (MX Entry Standar Google Apps)

Selesai mengubah MX Entry, saya melakukan tes pada sistem pendaftaran online. Apakah email berhasil terkirim.

Alhamdulillah, email invoice masuk folder spam di gmail. Di Yahoo, email invoice tidak ada baik di folder inbox maupun spam. Bounced (tidak diterima oleh Yahoo)

So You’d Like to Send Some Email (Through Code)

Stress. Dimana ini masalahnya? Email invoice dikirim otomatis menggunakan code berbasis php. Apakah disana masalahnya? Provider email menganggap email otomatis tersebut adalah spam?

Berawal dari forum stackoverflow yang membahasa masalah yang mirip dengan yang saya alami, saya menemukan artikel ini
http://blog.codinghorror.com/so-youd-like-to-send-some-email-through-code/
Artikel diatas secara jernih membahas masalah yang sedang saya hadapi. Email yang dikirim belum tentu akan masuk ke inbox alamat email yang kita tuju. Hal paling berharga yang saya petik dari email di atas adalah, melalui gmail, kita bisa melihat apakah email terkirim tersebut memenuhi SPF / Sender policy framework. Apakah utak utik yang kita lakukan sudah benar atau belum?

Saya pun membuka email invoice yang mendarat di folder spam. Saya klik “show original”

Delivered-To: kampung.yyyy@gmail.com
Received: by 10.194.22.72 with SMTP id b8csp366668wjf;
 Mon, 20 Apr 2015 19:18:14 -0700 (PDT)
X-Received: by 10.70.98.171 with SMTP id ej11mr1892494pdb.72.1429582693064;
 Mon, 20 Apr 2015 19:18:13 -0700 (PDT)
Return-Path: <xxxxx@carrot.qwords.net>
Received: from carrot.qwords.net ([103.28.xx.yyyy])
 by mx.google.com with ESMTPS id hf4si664900pac.7.2015.04.20.19.18.11
 for <kampung.yyyy@gmail.com>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 20 Apr 2015 19:18:12 -0700 (PDT)
Received-SPF: none (google.com: xxxxx@carrot.qwords.net does not designate permitted sender hosts) client-ip=103.28.xx.yyyy;
Authentication-Results: mx.google.com;
 spf=none (google.com: kampscom@carrot.qwords.net does not designate permitted sender hosts) smtp.mail=xxxx@carrot.qwords.net
Received: from xxxxx by carrot.qwords.net with local (Exim 4.85)
 (envelope-from <xxxxx@carrot.qwords.net>)
 id 1YkNkn-001jBj-7u
 for kampung.yyyy@gmail.com; Tue, 21 Apr 2015 09:17:37 +0700
To: kampung.yyyy@gmail.com
Subject: Invoice Pendaftaran Online
From: Admin Kampung Inggris <admin@pendaftaran.kampung-inggris.com>

Alamak, pantas saja masuk ke spam. Ternyata tidak lolos uji SPF dari gmail. Selain itu, ternyata email dikirim menggunakan alamat email dari hosting (carrot.qwords.net), bukan dari @domainsaya.

Saya pun mencoba memasukkan carrot.qwords.net ke whitelist SPF melalui Cpanel – Mail Authentication

SPF Kampung Inggris

Dengan optimis, saya coba melakukan pendaftaran online. Berharap email invoice yang dikirimkan sistem masuk ke inbox gmail.

Ternyata masih tetap sama, gmail masuk spam dan email bounced (tidak masuk) ke yahoo.

Apakah email dari webmail standar cpanel juga masuk ke spam?

webmail squirrel

Pertanyaan di atas tiba-tiba muncul. Apakah memang email yang berasal dari webmail domain standar cpanel kurang kredibel di mata gmail dan yahoo.

Saya pun mencoba mengirim email dari webmail cpanel (Squirrel). Dan ternyata benar, tetap masuk ke spam. Ketika saya cek “Show Original”, email lulus uji SPF

Delivered-To: emailsaya@gmail.com
Received: by 10.114.77.97 with SMTP id r1csp381960ldw;
        Mon, 20 Apr 2015 21:08:40 -0700 (PDT)
X-Received: by 10.68.65.66 with SMTP id v2mr33957145pbs.10.1429589318861;
        Mon, 20 Apr 2015 21:08:38 -0700 (PDT)
Return-Path: <admin@pendaftaran.com>
Received: from carrot.qwords.net ([103.28.xx.yyyy])
        by mx.google.com with ESMTPS id t8si952805pbs.233.2015.04.20.21.08.35
        for <emailsaya@gmail.com>
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 20 Apr 2015 21:08:37 -0700 (PDT)
Received-SPF: pass (google.com: domain of admin@pendaftaran.com designates 103.28.xx.yyyy as permitted sender) client-ip=103.28.xx.yyyy;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of admin@pendaftaran.com designates 103.28.xx.yyyy as permitted sender) smtp.mail=admin@pendaftaran.com;
       dkim=pass header.i=@pendaftaran.kampung-inggris.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=pendaftaran.com; s=default;
	h=Content-Transfer-Encoding:Content-Type:MIME-Version:To:From:Subject:Date:Message-ID; bh=GOgNkDh19XqxvAR7Sv3R/iBe40SZFZPYZnrTUYKx3ww=;
	b=vae72XL4uzEkVRirrVeFbqYWi2n+l4jpeaYv0KZlslz0S2SKG1teqy9anFm///D661LqSEXvuIiUNfZu19DB6HygrMeMTCAdtLq5yAtozGwFiWM2wfosxselKgLq/ZyxdiPuLiycHJdaQ0BDICXssir+mQluYSxuo4hCDx3jVi8=;
Received: from localhost ([::1]:54349 helo=pendaftaran.com)
	by carrot.qwords.net with esmtpa (Exim 4.85)
	(envelope-from <admin@pendaftaran.com>)
	id 1YkPTe-002Ifk-BW
	for emailsaya@gmail.com; Tue, 21 Apr 2015 11:08:02 +0700
Received: from 114.79.xx.yy ([114.79.xx.yy])
        (SquirrelMail authenticated user
 admin@pendaftaran.kampung-inggris.com)
        by pendaftaran.kampung-inggris.com with HTTP;
        Mon, 20 Apr 2015 21:08:02 -0700
Message-ID: <0d82a349ed8cced8878afd93073f581e.squirrel@pendaftaran.kampung-inggris.com>
Date: Mon, 20 Apr 2015 21:08:02 -0700

Just WTF. Lolos uji SPF dan DKIM, tetap dianggap spam.

Teringat satu komen di artikel “So You’d Like to Send Some Email” dan rekomendasi di forum stackoverflow untuk menggunakan cloud based service postmark, agar email yang dikirim secara otomatis dari code bisa masuk ke inbox

PostMark

Postmark

Setelah semua upaya gagal, kini saatnya menggunakan service dari pihak ketiga. Pertama yang dilihat adalah pricingnya, $1,5 untuk 1000 email. Saat sign up memperoleh kredit 25000 email. Wah, murah banged nih, boleh dicoba. Daripada rugi pelanggan kabur karena sistem yang tampak tidak reliable.

Proses sign up juga mudah, tinggal masukkan email. Hanya ada Proses verifikasi SPF dan menambahkan TXT melalui Cpanel – Advanced DNS Editor. And ready to go.

Tinggal mengkonfiguraasikan code di sistem pendaftaran online agar mengirimkan melalui postmarkapp ini. Postmarkapp menyediakan knowledgebase yang lengkap. Apapun basic code yang Anda gunakan untuk mengirim email otomatis, baik curl, rails, ruby, C#, PHP, Node.js, wordpress, maupun plainSMTP. Semua bisa menggunakan postrmark. Tinggal menyesuaikan konfigurasinya.

Karena sistem saya berbasis PHP, maka petunjuk konfigurasi PHP bisa dicek disini

http://developer.postmarkapp.com/developer-official-libs.html#php

Advertisements