Tweet

Mail Gönderme

Ruby son zamanların en popüler programlama dillerinden biridir.Dilin ortaya çıkmasını sağlayan Yukihiro matsumoto isminde bir geliştiricidir.Genel olaral perl,Eiffel,Ada,Lisp,Smaltalk dillerinin göze çarpan en iyi özelliklerini bir araya getirerek fonksiyonel programlama ile imperativ programlamaya dayanan bir dil yaratmıştır.[...]
Ruby herşeyin birer nesne olduğunu öngören ve kodların kendi özelliklerine ve olaylarına sahip olduğunu vurgular.%100 nesne yönelimli bir dil olduğu geniş kesim tarafından ve kendini ispatlayan kodları tarafından kabul görülmektedir.Herşeyden önce esnektir.Tamamen programcıyı kısıtlama olgusunu ortadan kaldırmayı amaçlamaktadır.

Ruby hakkında kısa bir açıklama yaptıktan sonra asıl konumuza geçelim..

Ruby ile birçok uygulama geliştirebiliriz.Bunlardan bir örnek vererek hem kullanım mantığını ve kavramlarına bir göz atalım şimdi..

Örnek bir mail programramı oluşturacağız..

Başlayalım..

CODE:
C:ruby> rails emails


İşlem için gerekli çerçeveyi oluşturduk.

Action Mailer ve konfigürasyonları

Yapılandırma kısmında ilk öncelikle eklememiz gereken birşey var..

yaptığımız projenin içinde oluşan config klasöründe environment.rb dosyasını herhangi bir txt editörü ile açarak eklememiz gereken bir methodu yazıyoruz..

CODE:
ActionMailer:: Base.delivery_method=: SMTP


Buradaki amaç kullanıcının SMTP sunucusunu kullanmak istediğini işaret eder.Ben bunu genel kullanıcı çokluğuna göre windows işletim sistemleri üzerinden açıkladım.Eğer bir unix tabanlı işletim sistemi kullanıyorsanız yani Mac OS X veya ubuntu,debian gibi bir linux türevi o zaman yine environment.rb dosyasını kullandığınız işletim sisteminin mevcut txt editörü ile açarak en alta şu kodları ekliyoruz..

CODE:
ActionMailer:: Base.server_settings={
:adres=> "smtp.thecoders",
:port=>25,
:domain=>"thecoders.net",
:authentication=>:login,
:user_name=>"username",
:password=>"password",
}

Kaydediyoruz..

Burada eğer standart bir SMPT sunucusu kullanıyorsanız bağlantı noktası 25 i değiştirmeniz gerekmiyor.Ayrıca varsayılan e-posta iletisi tipini değiştirebilirsiniz.Düz metin yerine html e-posta göndermek istiyorsanız yine environment.rb yapılandırmasına gereksinim duyuyoruz.Eklemeniz gereken kod ise;

CODE:
ActionMailer:: Base.default_content_type="text/html"


şeklinde yazabilirsiniz..

Mail oluşturma

CODE:
C:ruby> cd emails
C:rubyemails> ruby script/generate mailer Emailer


Bu emailer.rb isminde appmodels dizininde oluşacaktır.İçeriğine bakacak olursak eğer;

CODE:
class Emailer<ActionMailer::Base
end

Şeklinde bir kod dizisi görebiliriz.

Bir method oluşturalım hemen..

CODE:
class Emailer < ActionMailer::Base
def contact(alici,baslik,mesaj, sent_at=Time.now)
@baslik=baslik
@alici=alici
@gonderen='mailer.thecoders.net'
@sent_ont=sent_at
@body["title"]='Baslik'
@body["email"]='mailer2@thecoders.net'
@body["message"]=message
@header={}
end
end

Burada dört parametreden meydana gelen bir e-posta gönderimi tanımladık.konusu,alıcının mesajı ve sent_at yarattık.

Şimdide bir mail template yaratalım..

CODE:
Merhaba

Sitenizdeki bazı sorunlar için görüşmek istiyorum<%=email%@>

<%=@title%>
ve mail adresim xxx@domain.com
<%=@mesaj%>

Teşekkür ederim

Daha sonra bu uygulama için bir denetleyici meydana getirelim..

CODE:
C:rubyemails> ruby script/generate controller Emailer

emailer_controller.rb e-postayı gönderen method ve kontroller için aşağıdaki parametreleri tanımlamamız gerekir..

CODE:
class EmailerController<ApplicationController
def sendmail
email=@params["email"]
alici=email["alici"]
baslik=email["baslik"]
mesaj=email["mesaj"]
Emailer.deliver_contact{alici,baslik,mesaj)
return if request.xhr?
render:text=>'Mesajınız gönderiminiz başarıyla tamamlandı'
end
end

Şimdi yapmamız gereken bir aşamada şu.Arayüzü oluşturmak..

Emailer_controler.rb dosyasına aşağıda vereceğim kodları ekleyiniz..

CODE:
def index
render:file=>'appviewsemailerindex.rhtml'
end

İçeriğe göz atalım hemen..

CODE:
<h1>Send Email</h1>
<%= start_from_tag:action=> 'sendmail' %>
<p><label for="email_baslik">Baslik</label>:
<%= text_field 'email', 'baslik' %></p>
<p><label for="email_alici">Alici</label>:
<%= text_field 'email', 'alici' %></p>
<p><label for="email_mesaj&eacute;>Mesaj</label><br/>
<%= text=area 'email','mesaj' %></p>
<%= submit_tag "Send" %>
<%= end_form_tag %>

Şimdi http://17.0.0.1:300/Emailer/index şeklinde test edebiliriz.Bu arayüz üzerinden mail gönderme işlemini gerçekleştirebiliriz artık..Test ekranında kodlardanda anlaşılacağı gibi 3 label 3 text box alanı karşımıza çıkacak.Send butonu üzerinden fonksiyonu çalıştırıp onay mesajı alıyoruz..

Umarım açıklayıcı olmuştur | thecoders.net


Oguzz
oguz@thecoders.net
1 Ekim 2007 11:23

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg