Warung Bebas

Saturday, February 25, 2012

Sending Email via Gmail SMTP Server using OpenSSL



gmail-logo2
Artikel ini bukan tentang bagaimana memakai Outlook, Thunderbird dan email client lainnya, bukan itu. Di sini saya akan menjelaskan bagaimana email dikirimkan ke tujuan melalui SMTP server Gmail secara anonymous maupun authenticated dengan menggunakan OpenSSL. Ini adalah penjelasan apa yang sebenarnya terjadi dibalik layar ketika outlook dan email client lainnya mengirim email melalui smtp server gmail.
Anonymous vs Authenticated Sending
Email bisa dikirimkan melalui smtp server secara anonymous maupun authenticated. Kalau kita mengirim email secara anonymous memakai smtp server milik gmail, maka email tujuan tidak bisa dari domain lain, harus dari domain yang sama atau domain lain yang masuk dalam jaringan google apps. Bila smtp server gmail mengijinkan pengiriman email ke lain domain secara anonymous itu berarti smtp server gmail bersifat open relay, karena dia bersedia menjadi titik relay pengiriman email ke domain lain. Saat ini jarang sekali ada smtp server yang open relay karena dia akan menjadi sasaran spammer mengirimkan email spamnya ke domain lain.
Jadi bila kita ingin mengirim email ke domain lain (di luar google network), mau tidak mau harus secara authenticated yaitu dengan memasukkan username dan password terlebih dahulu. Dengan memasukkan username dan password, kini gmail bersedia menjadi titik relay pengiriman email ke manapun. Mirip dengan ketika kita login ke webmail gmail dengan sebelumnya memasukkan username dan password. Setelah login, selanjutnya kita bisa mengirimkan email ke manapun juga.
Sending Anonymously
Sebelum masuk ke pembahasan pengiriman email authenticated dengan SSL (smtps), saya akan memulai dengan mengirim email secara anonymous dengan smtp biasa. Pertama saya harus tahu dulu smtp server yang akan saya gunakan. Untuk itu saya harus mencari MX record dari domain gmail.com. Dengan perintah dig saya bisa mengetahui bahwa MX record untuk gmail.com adalah:
$ dig -t MX gmail.com
;; QUESTION SECTION:
;gmail.com. IN MX
 
;; ANSWER SECTION:
gmail.com. 2878 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 2878 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 2878 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 2878 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 2878 IN MX 20 alt2.gmail-smtp-in.l.google.com.
 
;; AUTHORITY SECTION:
gmail.com. 207201 IN NS ns4.google.com.
gmail.com. 207201 IN NS ns1.google.com.
gmail.com. 207201 IN NS ns2.google.com.
gmail.com. 207201 IN NS ns3.google.com.
 
;; ADDITIONAL SECTION:
gmail-smtp-in.l.google.com. 174 IN A 209.85.143.114
alt1.gmail-smtp-in.l.google.com. 174 IN A 209.85.199.27
alt2.gmail-smtp-in.l.google.com. 174 IN A 216.239.59.27
alt3.gmail-smtp-in.l.google.com. 174 IN A 74.125.79.27
alt4.gmail-smtp-in.l.google.com. 174 IN A 209.85.218.43
ns1.google.com. 34378 IN A 216.239.32.10
ns2.google.com. 34378 IN A 216.239.34.10
ns3.google.com. 34378 IN A 216.239.36.10
ns4.google.com. 34378 IN A 216.239.38.10
Ada banyak mail server untuk domain gmail.com, silakan pilih yang mana saja. Dalam contoh ini saya memakai gmail-smtp-in.l.google.com. Selanjutnya saya akan mengirim email dari dan ke rizki.wicaksono a.t. gmail.com. Saya akan membuat koneksi ke smtp server tersebut pada port 25 dan mengirimkan perintah smtp. Maaf alamat email saya ubah menjadi rizki.wicaksono .a.t. gmail.com agar tidak jadi sasaran spam, seharusnya dalam format email yang benar dengan karakter @.
$ telnet gmail-smtp-in.l.google.com 25
Trying 209.85.143.114...
Connected to gmail-smtp-in.l.google.com (209.85.143.114).
Escape character is '^]'.
220 mx.google.com ESMTP 22si3820758tim.24
ehlo gmail.com
250-mx.google.com at your service, [202.43.x.x]
250-SIZE 35651584
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 PIPELINING
mail from:<rizki.wicaksono.a.t.gmail.com>
250 2.1.0 OK 22si3820758tim.24
rcpt to:<rizki.wicaksono.a.t.gmail.com>
250 2.1.5 OK 22si3820758tim.24
data
354 Go ahead 22si3820758tim.24
testing ajah...
.
250 2.0.0 OK 1236753091 22si3820758tim.24
quit
221 2.0.0 closing connection 22si3820758tim.24
Connection closed by foreign host.
Perintah SMTP yang saya kirimkan sederhana sekali, diawali dengan EHLO sebagai salam pembuka. Kemudian diikuti dengan MAIL FROM, untuk mengisi alamat email asal yang harus diapit dengan karakter < dan >. Setelah itu baru masukkan email tujuan dengan perintah RCPT TO (juga harus diapit dengan karater < dan >). Setelah itu perintah berikutnya adalah DATA. Dengan mengirimkan perintah data ini, maka saya bisa mulai menuliskan Subject dan body email, hingga diakhiri dengan karakter DOT dalam satu baris sendiri.
Mari kita lihat email yang diterima dalam format header lengkap berikut ini:
Delivered-To: rizki.wicaksono.a.t.gmail.com
Received: by 10.115.106.13 with SMTP id i13cs348624wam;
Tue, 10 Mar 2009 23:31:32 -0700 (PDT)
Received: by 10.110.92.8 with SMTP id p8mr5461696tib.56.1236753091115;
Tue, 10 Mar 2009 23:31:31 -0700 (PDT)
Return-Path: <rizki.wicaksono.a.t.gmail.com>
Received: from gmail.com ([202.43.x.x])
by mx.google.com with ESMTP id 22si3820758tim.24.2009.03.10.23.31.17;
Tue, 10 Mar 2009 23:31:31 -0700 (PDT)
Received-SPF: neutral (google.com: 202.43.169.218 is neither permitted nor denied by domain of rizki.wicaksono.a.t.gmail.com) client-ip=202.43.169.218;
Authentication-Results: mx.google.com; spf=neutral (google.com: 202.43.169.218 is neither permitted nor denied by domain of rizki.wicaksono.a.t.gmail.com) smtp.mail=rizki.wicaksono.a.t.gmail.com
Date: Tue, 10 Mar 2009 23:31:31 -0700 (PDT)
Message-Id: <49b75ac3.160d6e0a.23a7.ffff842eSMTPIN_ADDED@mx.google.com>
testing ajah...
Pada header Received terlihat bahwa email pertama diterima oleh smtp server mx.google.com (ini hostname alias dari gmail-smtp-in.l.google.com). Kemudian smtp server ini merelay email ini ke smtp server lain, yaitu 10.110.92.8, dan akhirnya dari sana di-relay lagi ke smtp server terakhir yaitu 10.115.106.13. Smtp server 10.115.106.13 tersebut adalah smtp server yang terdekat dengan inbox user sehingga tidak perlu lagi di-relay.
Sending via SMTP-Secure (SMTP over SSL)
Kelemahan dari pengiriman email secara anonymous yang saya tunjukkan di atas adalah tidak bisa dipakai untuk mengirim email ke lain domain. Karena smtp server gmail tidak rela dijadikan titik relay pengiriman email ke domain lain. Yang dimaksud dengan domain lain adalah domain selain gmail.com dan domain lain yang tergabung dalam google apps network. Jadi kalau anda mempunyai email dengan domain sendiri di google apps, anda bisa memakai smtp server ini.
Saya akan mencoba mengirim email ke rizki.a.t.ilmuhacking.com dengan menggunakan smtp server gmail. Perhatikan bahwa saya bisa saja langsung menggunakan smtp server ilmuhacking.com untuk mengirim email ke ilmuhacking.com, namun dalam artikel ini saya akan menunjukkan pengiriman email dari smtp server gmail. Gmail mempunyai smtp server sendiri yang berbeda dengan smtp server dalam daftar MX record DNS. SMTP server ini berlokasi di smtp.gmail.com. Pengiriman email dengan smtp server ini harus dengan smtp secure, yaitu smtp over SSL pada port 465. Mirip dengan http secure (http over SSL), pengiriman email dengan smtps aman dari sniffing password dan serangan man-in-the-middle.
Oke, langsung saja ya. Saya gunakan perintah openssl command line berikut di Linux:
$ openssl s_client -connect smtp.gmail.com:465 -crlf -CAfile /etc/pki/tls/certs/ca-bundle.crt
Perintah tersebut adalah untuk membuka koneksi SSL ke smtp.gmail.com pada port 465. Opsi -crlf ini sangat penting karena tanpa opsi ini gmail akan diam seribu bahasa ketika kita selesai menulis body email dengan perintah DOT sebab ternyata gmail hanya mau menerima line feed dalam bentuk CRLF (0x0D+0x0A). Opsi -CAfile menunjukkan lokasi trusted Certificate Authority yang kita miliki untuk memverfifikasi sertifikat yang dimiliki server apakah valid atau tidak.
Setelah perintah ini dijalankan, maka openSSL akan menangani segala komunikasi yang terjadi di layer SSL, mulai dari negosiasi hubungan sampai mengakhiri hubungan. Berikut ini adalah tampilan setelah perintah itu dijalankan.
CONNECTED(00000003)
depth=1 /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
i:/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDYzCCAsygAwIBAgIQUR2EgGT4+hGKEhCgLMX2sjANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTA3MDczMDAwMDAwMFoXDTEwMDcyOTIzNTk1OVow
aDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1v
dW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBJbmMxFzAVBgNVBAMTDnNtdHAu
Z21haWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD+RiG+G3Mo9Q9C
tcwDjpp6dJGifjiR5M2DbEbrsIOlth80nk5A7xstKCUfKobHkf/G9Y/DO24JP5yT
s3hWep05ybyiCmOzGL5K0zy3jIq0vOWy+4pLv2GsDjYi9mQBhobAAx3z38tTrTL+
WF4p0/Kl014+wnukIpj4MdF35rIkgQIDAQABo4GmMIGjMB0GA1UdJQQWMBQGCCsG
AQUFBwMBBggrBgEFBQcDAjBABgNVHR8EOTA3MDWgM6Axhi9odHRwOi8vY3JsLnRo
YXd0ZS5jb20vVGhhd3RlUHJlbWl1bVNlcnZlckNBLmNybDAyBggrBgEFBQcBAQQm
MCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5jb20wDAYDVR0TAQH/
BAIwADANBgkqhkiG9w0BAQUFAAOBgQBeNYOZwMVQ7bd6b4sueAkgm57Cyv2p1Xv1
52e8bLnWqd03mWgn/+TQtrwbE1E6pVuQaZJY33ILpt8IfzwVf2TGQI+M5yazZ2fC
xwArHo20iAss3MLQR8tDXWfBoH2Lk9BBsEKDRP4hp83yfpZgdY3pinHTCbqHpsiS
v97epiiFBA==
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
issuer=/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
---
No client certificate CA names sent
---
SSL handshake has read 1017 bytes and written 315 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-MD5
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : RC4-MD5
Session-ID: 2C94C746C92E5042C3B8FA92C765B21C5FC03147134A9B1998B89D25C18FD7C9
Session-ID-ctx:
Master-Key: 1F674A6B6ABB774873CB57B2E235138A83CF864071C674F781B2C51E7C67B5BB2487DCC07A2AA3F197494AE045BA9F13
Key-Arg : None
Krb5 Principal: None
Start Time: 1236755367
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
220 mx.google.com ESMTP j5sm1016106tid.21
Dari situ terlihat bahwa gmail menggunakan sertifikat yang diterbitkan oleh Thawte, algoritma cipher yang dipakai adalah RC4 128 bit, yang merupakan algoritma stream cipher. Pada baris terakhir terlihat “220 mx.google.com ESMTP” yang menunjukkan bahwa itu adalah pesan yang dikirim dari layer smtp dan pengguna kini siap berkomunikasi di layer SMTP. Selanjutnya saya harus memasukkan perintah smtp seperti biasa, tidak ada bedanya dengan perintah smtp pada pengiriman email secara anonymous sebelumnya karena ini adalah pada layer SMTP, layer SSL semua sudah ditangani oleh OpenSSL. Namun tidak seperti sebelumnya, kali ini saya harus memasukkan perintah untuk authentication dengan perintah AUTH LOGIN. Berikut adalah perintah smtp yang dikirimkan untuk melakukan authentication.
220 mx.google.com ESMTP a14sm120617tia.27
ehlo gmail.com
250-mx.google.com at your service, [202.43.169.218]
250-SIZE 35651584
250-8BITMIME
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250 PIPELINING
auth login
334 VXNlcm5hbWU6
cml6a2kud2ljYWtzb25vQGdtYWlsLmNvbQ==
334 UGFzc3dvcmQ6
aW5pcGFzc3dvcmQ=
235 2.7.0 Accepted
Seperti biasa saya mengawali dengan mengucapkan salam, dengan perintah EHLO. Setelah itu saya mengirimkan perintah AUTH LOGIN. Jawaban dari perintah AUTH LOGIN adalah “VXNlcm5hbWU6″ yang merupakan format base64 dari “Username:”. Kemudian saya menjawab dengan mengirimkan “cml6a2kud2ljYWtzb25vQGdtYWlsLmNvbQ==” yang merupakan format base64 dari username saya yaitu rizki.wicaksono.a.t.gmail.com (karakter @ saya ganti .a.t.). Gmail menjawab dengan “UGFzc3dvcmQ6″ yang merupakan format base64 dari “Password:”. Saya harus menjawab dengan password saya dalam format base64 encoded. Bila authentication berhasil maka gmail akan menjawab dengan “235 2.7.0 Accepted”.
235 2.7.0 Accepted
mail from:<rizki.wicaksono.a.t.gmail.com>
250 2.1.0 OK a14sm120617tia.27
rcpt to:<rizki.a.t.ilmuhacking.com>
250 2.1.5 OK a14sm120617tia.27
data
354 Go ahead a14sm120617tia.27
Setelah authentication berhasil saya bisa mulai mengirimkan email asal dan tujuan dengan perintah mail from dan rcpt to, sama seperti pada contoh pengiriman secara anonymous. Email tujuan saya kirim ke rizki.a.t.ilmuhacking.com.
perintah RCPT harus dikirim dalam huruf kecil “rcpt” sebab huruf kapital “R” dalam openSSL adalah perintah khusus untuk melakukan RENEGOTIATION.
Setelah memasukkan email asal dan tujuan, saya harus mengirimkan perintah DATA untuk mulai menulis isi emailnya. Kemudian gmail menjawab dengan “354 Go ahead a14sm120617tia.27″, itu artinya lampu hijau buat saya untuk memasukkan isi pesannya.
data
354 Go ahead a14sm120617tia.27
Subject: ini contoh saja(subject tidak harus ada)
 
ini baru isi bodynya
.
250 2.0.0 OK 1236757718 a14sm120617tia.27
Perintah DATA harus diakhiri dengan sebuah karakter dot pada satu baris sendiri. Kalau dalam binary hexa: 0x0D0A2E0D0A, atau dengan kata lain karakter DOT (hex 2E), diapit dengan CRLF. Inilah gunanya opsi -crlf, tanpa ada opsi -crlf, maka openSSL hanya akan mengirim 0x0A2E0A, atau karakter DOT diapi dengan LF. Pada beberapa smtp server LF saja tidak masalah, namun untuk server lain seperti gmail harus lengkap yaitu CRLF. Tanpa opsi -crlf gmail tidak akan bereaksi apa-apa walaupun sudah diberikan perintah DOT karena gmail menganggap perintah DATA belum selesai karena gmail merasa belum menemukan “[CR][LF][.][CR][LF]” .
Setelah mengirim “CRLF.CRLF”, gmail membalas dengan “250 2.0.0 OK 1236757718 a14sm120617tia.27″. Itu artinya email kita telah diterima oleh smtp server untuk disampaikan pada yang berhak menerima. String “a14sm120617tia.27″ adalah ESMTP ID yang akan muncul pada header “Received” nantinya. Setelah itu koneksi SSL harus diputus dengan perintah QUIT.
Email Full Header
Sekarang saya akan tunjukkan email yang diterima oleh rizki.a.t.ilmuhacking.com beserta header lengkapnya.
Return-path: <rizki.wicaksono.a.t.gmail.com>
Envelope-to: rizki.a.t.ilmuhacking.com
Delivery-date: Wed, 11 Mar 2009 02:46:34 -0500
Received: from ti-out-0910.google.com ([209.85.142.184]:18796)
by gator669.hostgator.com with esmtp (Exim 4.69)
(envelope-from <rizki.wicaksono.a.t.gmail.com>)
id 1LhJ98-00072k-98
for rizki.a.t.ilmuhacking.com; Wed, 11 Mar 2009 02:46:34 -0500
Received: by ti-out-0910.google.com with SMTP id w4so2949271tib.9
for <rizki.a.t.ilmuhacking.com>; Wed, 11 Mar 2009 00:48:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:received:message-id:date:from:subject;
bh=J251llbniOU9frVh5JTTWTbFJ7hfNyC2+eoS+Apb5mw=;
b=MhRby2/7B1Wqvm3AuaVoN8rfMEgmNgQVn9dOaMvji3dBEJMxYJhmF0pTmO10Ax5a0N
xPPZyR73wf4B9WnOuegsrYQaXeJcJwuT3OBpilTWYQkJ+On9oMp9G6f3mL8v1fqHop7R
LLoq+sOzpP4hPSizgP7Ych3zkbOYsYCPTxhNs=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=message-id:date:from:subject;
b=wkxbyGJZxZ0u3LlYgarzF9mOAZE/suPNKdCGtI7m4HUsQoIj2bqaRCVwa4h9Gl8fjh
Hz12rIg9HyDDXfqE0dc1bbL8IIjtjtppRV4DupwcKXz5qS769jEM6KJLm4rh0PsajxhI
yHhQEqDvokFNrii2I1toEdJB04Y847Bbw4Gi4=
Received: by 10.110.3.15 with SMTP id 15mr12547532tic.0.1236757718898;
Wed, 11 Mar 2009 00:48:38 -0700 (PDT)
Received: from gmail.com ([202.43.x.x])
by mx.google.com with ESMTPS id a14sm120617tia.27.2009.03.11.00.44.16
(version=SSLv3 cipher=RC4-MD5);
Wed, 11 Mar 2009 00:48:37 -0700 (PDT)
Message-ID: <49b76cd5.0e1b6e0a.7747.6163@mx.google.com>
Date: Wed, 11 Mar 2009 00:48:37 -0700 (PDT)
From: rizki.wicaksono.a.t.gmail.com
Subject: ini contoh saja(subject tidak harus ada)
 
ini baru isi bodynya
Untuk menelusuri email selalu dimulai dari header Received paling bawah kemudian naik ke atas. Header Received yang paling bawah menunjukkan bahwa email dikirimkan oleh IP 202.43.x.x melalui smtp server mx.google.com. Informasi lain dari header itu adalah email dikirimkan dengan SSL versi 3 dan cipher RC4-MD5. ESMTP id adalah gabungan dari id yang didapatkan wahtu saya terkoneksi ke smtp server gmail “a14sm120617tia” dengan tanggal dan jam.
Setelah itu email direlay ke smtp server 10.110.3.15. Dari situ masih di-relay lagi ke smtp server ti-out-0910.google.com, yang merupakan smtp server yang berada di ujung luar jaringan google. Smtp ini seperti sebuah gateway untuk email yang ditujukan ke domain di luar jaringan google. Dari smtp itu email direlay ke luar jaringan google melalui smtp server gator669.hostgator.com. Google mengetahui alamat smtp ilmuhacking dengan cara query MX record dari DNS. Berdasarkan MX record DNS, smtp server untuk domain ilmuhacking.com ada di ilmuhacking.com. Kalau MX servernya adalah ilmuhacking.com, kenapa kok disebut di header sebagai gator669.hostgator.com? Perhatikan apa yang dikirimkan oleh server ketika saya telnet ke MX server untuk ilmuhacking port 25.
$ telnet ilmuhacking.com 25
Trying 174.132.149.60...
Connected to 3c.95.84ae.static.theplanet.com (174.132.149.60).
Escape character is '^]'.
220-gator669.hostgator.com ESMTP Exim 4.69 #1 Wed, 11 Mar 2009 03:49:14 -0500
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
Dari jawaban server, terlihat jelas bahwa server menyebut dirinya dengan gator669.hostgator.com. Dari header email tidak ada lagi Received header setelah email direlay melalui gator669 ini. Artinya smtp server itu adalah yang paling dekat dengan email tujuan (memang smtp server itu berada di host yang sama dengan ilmuhacking, jadi email account berada di localhost).
Sending via Gmail Webmail
Mengirim email dengan webmail gmail lebih anonoymous daripada dengan email client karena IP address pengirim email akan tersembunyi
Sebagai pembanding saya ingin menunjukkan bedanya mengirim email menggunakan email client seperti outlook dengan mengirim email menggunakan webmail gmail.com. Mengirim email dengan webmail gmail lebih anonymous sebab ip address pengirim email akan tersembunyi dan tidak akan muncul di header email penerima. Jadi ketika penerima membaca headernya tidak akan bisa mengetahui pengirim email berasal dari IP berapa.
Baiklah mari kita coba mengirim email ke rizki.a.t.ilmuhacking.com dari gmail saya. Berikut adalah header email yang saya dapatkan di email saya @ilmuhacking.com.
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
Return-path: <rizki.wicaksono ----- gmail.com>
Envelope-to: rizki ---- ilmuhacking.com
Delivery-date: Thu, 02 Apr 2009 23:47:05 -0500
Received: from qw-out-2122.google.com ([74.125.92.26]:39569)
by gator669.hostgator.com with esmtp (Exim 4.69)
(envelope-from <rizki.wicaksono ----- gmail.com>)
id 1LpbJ2-00081i-Ur
for rizki-----ilmuhacking.com; Thu, 02 Apr 2009 23:47:04 -0500
Received: by qw-out-2122.google.com with SMTP id 3so780828qwe.41
for <rizki ---- ilmuhacking.com>; Thu, 02 Apr 2009 21:47:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:mime-version:received:date:message-id:subject
:from:to:content-type:content-transfer-encoding;
bh=ttbLYGlNcclR26ajVmyhGBxUz1HjR3xNKI+RYgNoXXY=;
b=rdHYQ5fLAKmA5Lfvye1KomQ+LDL8zwk+Wn8uanvrlNAAIj13Wr4Z+iJtPPDw2VR+yY
6DmLM48sl33LoiOKLYTmSdZMNS5ukRT8DLnoT+SSCOclG0iMASLGbvRYF+b8AfAyewBM
Kp5Rkg36hEIOt1VPZq++vd5Gc+xaiGDWYw4Ew=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:date:message-id:subject:from:to:content-type
:content-transfer-encoding;
b=UFm0D96HyVkRONh3GEJt2OcDJF49NswjHv6X1hJnAxNvNY+fAyj/NqI7B7zs/2BWRP
qaKKf30jpr7qlTbPsPUZLWaFGlTA+2qIFXWlRrOI59pYS9gIpwoW0GNKc0oilGIG30FF
0rkqdz3BA+PqFCbWZuVyHxBWIW7j+Gnzorlak=
MIME-Version: 1.0
Received: by 10.220.46.147 with SMTP id j19mr1263200vcf.75.1238734022579; Thu,
02 Apr 2009 21:47:02 -0700 (PDT)
Date: Fri, 3 Apr 2009 11:47:02 +0700
Message-ID: <845a4b9c0904022147j1077174cnc277b9e82871820b@mail.gmail.com>
Subject: testing saja....
From: Rizki Wicaksono <rizki.wicaksono ----- gmail.com>
To: rizki --- ilmuhacking.com
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Perhtaikan bahwa header Received yang paling bawah tidak menunjukkan ip address pengirimnya. Email pertama kali diterima oleh smtp server yang ip addressnya 10.220.46.147. Itu adalah ip adderss private, di jaringan internal gmail. Karena email dikirim dari webmail gmail sehingga email langsung diterima oleh server internal gmail. Dengan begini ip address pengirim tidak akan bisa diketahui oleh penerima email.
Comparison Regular SMTP vs SMTP over SSL vs Webmail
Oke, saya sudah tunjukkan 3 cara mengirim email melalui Gmail. Masing-masing ada kelemahan dan kelebihannya. Di bawah ini adalah tabel yang menunjukkan perbedaan dari ketiga cara tersebut dari sisi: ip address pengirim, apakah tersembunyi? apakah ada header DKIM-Signature? apakah untuk mengirim email harus login dulu? dan apakah bisa mengirim email ke domain di luar gmail.com?
 Sender Ip Address Hidden?Header DomainKey/DKIM-Signature?Must be Authenticated?Send to non-gmail domain?
Regular SMTPNoNoNoNo
SMTP over SSLNoYesYesYes
WebmailYesYesYesYes
No related posts.
Tagged with:  •  • 
 

0 comments em “Sending Email via Gmail SMTP Server using OpenSSL”

Post a Comment

 

Indahnya Berbagi Copyright © 2012 Fast Loading -- Powered by Blogger