Sep19

Ini adalah solusi murah bagi mereka yang ingin menggunakan GMAIL sebagai SMTP server di aplikasi railsnya, apalagi seperti yang sudah kita ketahui, Inbox GMAIL gratis dan space-nya yang lumayan GD (2 GB)
Normalnya action mailer tidak akan bisa menggunakan GMAIL sebagai SMTP server, karena GMAIL menggunakan protokol TLS, di mana protokol ini anak meng-enkripsi data email ketika dikirimkan, namun beruntunglah sthephen chu sudah membuatkan plugin-nya untuk kita semua yang berfungsi untuk mengirim email via TLS

Nama pluginnya action_mailer_tls, bisa langsung diinstall di aplikasi RAILS_ROOT anda dengan cara sebagai berikut

$ ruby script/plugin install http://svn.nanorails.com/plugins/action_mailer_tls/

lalu buka RAILS_ROOT/config/environtment.rb

masukan script ini (hanya contoh, value-nya sesuaikan dengan kebutuhan)

ActionMailer::Base.delivery_method = :smtp
	
ActionMailer::Base.server_settings = {
    :address => \"smtp.gmail.com\",
    :port => 587,
    :domain => \"gmail.com\",
    :authentication => :plain,
    :user_name => \"sayah\",
    :password => \"s4y4hg4nt3ngs3k4l1\"
}

lalu buat kode action mailernya

ruby script/generate welcome_mailer

buka filenya RAILS_ROOT/app/model/welcome_mailer.rb

masukan script sepert ini (contoh, ganti valuenya sesuai kebutuhan)

class WelcomeMailer < ActionMailer::Base
  def confirm
    @subject = 'test euy'
    @recipients = aditya_jamop@yahoo.com
    @sent_on = Time.now
    @headers = {}
    @body = "gwe ngirim email via GMAIL menggunakan Rails euy, salam semoga PERSIB jaya selalu"
  end
	
  def sent
    @subject = 'test euy'
    @recipients = aditya_jamop@yahoo.com
    @sent_on = Time.now
    @headers = {}
    @body = "gwe ngirim email via GMAIL menggunakan Rails euy, salam semoga PERSIB jaya selalu "
  end
	
end

buka file RAILS_ROOT/config/environtments/development.rb

pastikan settingan config.action_mailer.raise_delivery_errors=true supaya kalo ada error bisa keliatan di log/development.rb

nah skrng coba dilakukan pengetesan, masuk ke RAILS_ROOT (pakek console/terminal)

$ ruby script/console
Loading development environment.
>>

kalo promptnya dah muncul tinggal ketik

>> WelcomeMailer.deliver_sent
…..
…..
…..
…..
…..
writing message from String
wrote 372 bytes
-> “250 2.0.0 OK 1190183653 k39sm664813wah\r\n”
< - "QUIT\r\n"
-> “221 2.0.0 mx.google.com closing connection k39sm664813wah\r\n”
=> # bodyport=#

nah kalau messagenya yang terakhir kira2 muncul kayak di atas gitu, artinya itu berhasil, kalo nggak percaya silahkan cek saja di Inbox-nya, coba cek juga di SPAM folder, kadang2 suka masuk ke situ

btw, kalo program yang anda bikin masih ada error, itu kemungkinan ruby net/ssh -nya belum keinstall, install aja dulu, caranya

gem install net-ssh

demikian, semoga berguna

4 Komentar

Trackback: Use this URI to trackback this entry. Use your web browser's function to copy it to your blog posting.

Gravatar: You can have a picture at the top of each your comments by getting a Gravatar

arie
October 9, 2007 3:32 pm

ruby script/generate welcome_mailer

itu pasti salah ketik / ada yang kurang, yaitu perintah mailer . jadi yang betul :

ruby script/generate mailer welcome_mailer

arie
November 15, 2007 2:45 pm

def sent

pastikan itu adalah self.sent kalau dipanggil langsung dengan class Welcome.sent

arie
November 15, 2007 3:01 pm

juga yang penting banget untuk diingat adalah

DEPRECATION WARNING: server_settings has been renamed smtp_settings, this warning will be removed with rails 2.0 See http://www.rubyonrails.org/deprecation for details. (called from /Users/arie/PB-arie-backup/penelitian/tls/config/environment.rb:12)

jadi pakai smtp_settings bukan server_settings lagi.

adit
November 15, 2007 4:59 pm

@oom Arie

cara manggilnya mesti pake prefix deliver_ , jd alih2 menggunakan Welcome.sent , yg bener itu Welcome.deliver_sent

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.