R(uby(mail|filter)deliver) (szóval a levelek meg a Ruby) <ul><li>Küldeni egyszerű: </li></ul><ul><li>message = <<-EOF </li...
RubyMail (RMail) <ul><li>… de lehet egyszerűbben a RubyMaillel </li></ul><ul><li>m = RMail::Message.new </li></ul><ul><li>...
Mire jó? <ul><li>A RubyMail a legalacsonyabb szint </li></ul><ul><li>Levelek készítése, és feldolgozása… </li></ul><ul><li...
RubyFilter (RFilter) <ul><li>RubyMailre épülő library </li></ul><ul><li>Mail Delivery Agent </li></ul><ul><li>Együttmuködi...
Az alternatívák <ul><li>Procmail: borzalmas szintaxis, erősen limitált regexp, kényelmetlen </li></ul><ul><li>Sieve: nagyo...
RDeliver <ul><li>csak a ‘lényeg’ a RubyFilterből meg a RubyMailből </li></ul><ul><li>egy változó: agent </li></ul>
Egy rendszer felépítése <ul><li>MTA fogadja (pl. Postfix) </li></ul><ul><li>Maildir alapok </li></ul><ul><li>Kiszolgálás: ...
agent. <ul><li>header[] </li></ul><ul><li>save/defer/reject </li></ul><ul><li>filter </li></ul><ul><li>pipe </li></ul><ul>...
A lehetőségek... <ul><li>… korlátlanok: </li></ul><ul><ul><li>Header alapján regexpes szurés (well duh) </li></ul></ul><ul...
Kérdések? By: Kádár Tamás Linkek, infók: http://ktamas.net/ [email_address]
Upcoming SlideShare
Loading in …5
×

Lightning Talk Ruby And Mail V2

460 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
460
On SlideShare
0
From Embeds
0
Number of Embeds
60
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lightning Talk Ruby And Mail V2

  1. 1. R(uby(mail|filter)deliver) (szóval a levelek meg a Ruby) <ul><li>Küldeni egyszerű: </li></ul><ul><li>message = <<-EOF </li></ul><ul><li>From: me <ktamas@myserver> </li></ul><ul><li>To: you <you@mailserver> </li></ul><ul><li>Subject: Hello world </li></ul><ul><li>Date: #{Time.now} </li></ul><ul><li>Szia! </li></ul><ul><li>EOF </li></ul><ul><li>Net::SMTP.start(‘localhost’, 25) do |smtp| </li></ul><ul><li>smtp.send_message(message, ‘ktamas@myserver’, ‘you@mailserver’) </li></ul><ul><li>end </li></ul>
  2. 2. RubyMail (RMail) <ul><li>… de lehet egyszerűbben a RubyMaillel </li></ul><ul><li>m = RMail::Message.new </li></ul><ul><li>m.header[‘To’] = “you <you@mailserver>” </li></ul><ul><li>m.header[‘From’] = “me <me@myserver>” </li></ul><ul><li>m.header[‘Subject’] = “Szia!” </li></ul><ul><li>m.body = “Szia!” </li></ul><ul><li>Net::SMTP.start(‘localhost’, 25) do |smtp| </li></ul><ul><li>smtp.send_message(m, ‘ktamas@myserver’, ‘you@mailserver’) </li></ul><ul><li>end </li></ul>
  3. 3. Mire jó? <ul><li>A RubyMail a legalacsonyabb szint </li></ul><ul><li>Levelek készítése, és feldolgozása… </li></ul><ul><li>… de a feldolgozásra van más </li></ul>
  4. 4. RubyFilter (RFilter) <ul><li>RubyMailre épülő library </li></ul><ul><li>Mail Delivery Agent </li></ul><ul><li>Együttmuködik bármilyen MTA-val </li></ul>
  5. 5. Az alternatívák <ul><li>Procmail: borzalmas szintaxis, erősen limitált regexp, kényelmetlen </li></ul><ul><li>Sieve: nagyon leegyszerűsitett, nem támogat változókat, ciklusokat, etc. </li></ul><ul><li>Maildrop: ezek közül a leghasználhatóbb, perl-szerű szintaxis, változók, egy fokkal jobb regexp engine </li></ul><ul><li>… de itt van nekünk a teljes Ruby, mint eszközkészlet, főleg, ha valami komolyabb kell </li></ul>
  6. 6. RDeliver <ul><li>csak a ‘lényeg’ a RubyFilterből meg a RubyMailből </li></ul><ul><li>egy változó: agent </li></ul>
  7. 7. Egy rendszer felépítése <ul><li>MTA fogadja (pl. Postfix) </li></ul><ul><li>Maildir alapok </li></ul><ul><li>Kiszolgálás: IMAP, opcionálisan: megosztott mappákkal </li></ul><ul><li>Felhasználó home mappájában .forward fájl: </li></ul><ul><li>“ |/usr/bin/rdeilver --home /home/ktamas/Maildir --log /home/ktamas/Maildir/.rlog” </li></ul><ul><li>Maildir mappában .rdeliver fájl, abban a program, minimális követelmény: </li></ul><ul><li>def main </li></ul><ul><li>agent.save(‘./’) </li></ul><ul><li>end </li></ul>
  8. 8. agent. <ul><li>header[] </li></ul><ul><li>save/defer/reject </li></ul><ul><li>filter </li></ul><ul><li>pipe </li></ul><ul><li>body </li></ul><ul><li>log </li></ul><ul><li>… </li></ul>
  9. 9. A lehetőségek... <ul><li>… korlátlanok: </li></ul><ul><ul><li>Header alapján regexpes szurés (well duh) </li></ul></ul><ul><ul><li>YAML-ben pluszszabályok, extra adatok, beállítások </li></ul></ul><ul><ul><li>Exotikusabb levelek (pl. delivery reportok) pofonegyszerű szurése </li></ul></ul><ul><ul><li>értesítés küldése új mappákról (hogy a júzer feliratkozhasson rá) </li></ul></ul><ul><ul><li>bizonyos levelekrol értesítés küldése XMPP-n </li></ul></ul><ul><ul><li>… </li></ul></ul>
  10. 10. Kérdések? By: Kádár Tamás Linkek, infók: http://ktamas.net/ [email_address]

×