Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIT 383: Administrative Scripting

Similar presentations


Presentation on theme: "CIT 383: Administrative Scripting"— Presentation transcript:

1 CIT 383: Administrative Scripting
Electronic Mail CIT 383: Administrative Scripting

2 CIT 383: Administrative Scripting
Topics MTAs SMTP Message Stores POP and IMAP CIT 383: Administrative Scripting

3 CIT 383: Administrative Scripting
MTAs Mail Transport Agents use SMTP protocol Receive mail from MUAs. Route mail across internet. Examples sendmail postfix qmail exim MS Exchange CIT 383: Administrative Scripting

4 CIT 383: Administrative Scripting
SMTP Example 220 brahms.nku.edu ESMTP Sendmail ; Wed, 12 Apr 2006 helo mydomain.com 250 brahms.nku.edu Hello mydomain.com, pleased to meet you mail from: Sender ok rcpt to: Recipient ok data 354 Enter mail, end with "." on a line by itself Subject: Test From: To: This is a test. . k3GIcr Message accepted for delivery quit brahms.nku.edu closing connection CIT 383: Administrative Scripting

5 CIT 383: Administrative Scripting
SMTP Commands HELO hostname EHLO hostname MAIL FROM: addr RCPT TO: addr VRFY addr EXPN addr DATA QUIT RSET HELP CIT 383: Administrative Scripting

6 CIT 383: Administrative Scripting
SMTP in Ruby require 'net/smtp' message = <<EOM From: #{from} To: #{to} Subject: smtp test This is a test message. EOM smtp = Net::SMTP.new(server, 25) smtp.start do |smtp| smtp.send_message(message, to, from) end CIT 383: Administrative Scripting

7 CIT 383: Administrative Scripting
Message Store Communication Receives data from MDA (mail.local, procmail) Provides data to MAA (IMAP, POP, NFS, web) Types of stores Files (all messages for a user in one file) Directories (directory per user) Databases CIT 383: Administrative Scripting

8 CIT 383: Administrative Scripting
POP and IMAP POP: Post Office Protocol Simple download protocol for offline reading. IMAP: Internet Mail Access Protocol Online and offline modes of reading. Partial message fetch (headers, attachments, etc.) Message state stored on server, not client. Multiple mailbox and multiple client support. CIT 383: Administrative Scripting

9 CIT 383: Administrative Scripting
POP3 Example S: +OK POP3 server ready C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK mrose's maildrop has 2 messages (320 octets) C: STAT S: +OK 2 320 C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . C: RETR 1 S: +OK 120 octets S: <the POP3 server sends message 1> C: DELE 1 S: +OK message 1 deleted C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) Example from CIT 383: Administrative Scripting

10 CIT 383: Administrative Scripting
Accessing Mail in Ruby Files (mbox format) require ‘mailread’ mbox = Mail.new(fh) POP require ‘net/pop’ pop = Net::POP3.new(server) pop.start(user, pass) IMAP require ‘net/imap’ imap = Net::IMAP.new(server) imap.login(user, pass) CIT 383: Administrative Scripting

11 CIT 383: Administrative Scripting
References Michael Fitzgerald, Learning Ruby, O’Reilly, David Flanagan and Yukihiro Matsumoto, The Ruby Programming Language, O’Reilly, 2008. Hal Fulton, The Ruby Way, 2nd edition, Addison- Wesley, 2007. Robert C. Martin, Clean Code, Prentice Hall, Dave Thomas with Chad Fowler and Andy Hunt, Programming Ruby, 2nd edition, Pragmatic Programmers, 2005. CIT 383: Administrative Scripting


Download ppt "CIT 383: Administrative Scripting"

Similar presentations


Ads by Google