Internet infrastructure - Prof. dr. ir. André Mariën
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Internet infrastructure Prof. dr. ir. André Mariën 2020 - 2021 (c) A. Mariën 1
Electronic mail 2020 - 2021 (c) A. Mariën 2
SMTP • Simple Mail Transfer Protocol • RFC 2821 • Successor of RFC 821 (and others) • Objective: transfer mail reliably and efficiently 2020 - 2021 (c) A. Mariën 3
Basic structure SMTP SMTP SMTP User Client Server Client SMTP SMTP SMTP User Client Server Client (c) A. Mariën 2020 - 2021 4
Basic operation • Determine postbox domain – Postbox: postbox@domain • Look up SMTP server – DNS MX records (nslookup): • Querytype=mx • Search ‘domain’ • Set up TCP connection to server, port 25 • Transfer mail using SMTP protocol 2020 - 2021 (c) A. Mariën 5
Look up SMTP server • DNS contains Mail eXchange resource records (MX RR records) • MX records contain server and priority – example: smallcom.com MX mail.smallcom.com 10 smallcom.com MX mail.hoster.com 20 – “if possible, deliver to me (mail.smallcom.com), otherwise my hosting company (mail.hoster.com)” 2020 - 2021 (c) A. Mariën 6
Set up connection to server • SMTP: typically on top of TCP/IP • IANA assigned number SMTP port: 25 – To test: • telnet host 25 • Note – Typical end-node configuration: via a dedicated SMTP gateway – Configured in email client – No DNS lookup, no direct connection 2020 - 2021 (c) A. Mariën 7
Transfer mail using SMTP HELO marien.com MAIL FROM:andre@marien.com RCPT TO:an@an.com RCPT TO:bob@bob.com … DATA ILOVEYOU . QUIT 2020 - 2021 (c) A. Mariën 8
Mail object structure • Mail envelop – MAIL FROM – RCPT TO – DATA • Mail content – most often: RFC 822 (see next topic) • header • body 2020 - 2021 (c) A. Mariën 9
SMTP reply • numeric completion code • 1yz: positive preliminary • 2yz: positive completion • 3yz: positive intermediate • 4yz: transient negative completion • 5yz: permanent negative completion 2020 - 2021 (c) A. Mariën 10
Additional commands VERIFY EXPAND • Verify: checking of • Expand : support for mailbox existence mailing lists • OK: 250 response • OK: (250- [name] )* 250 [name] • If ambiguous: (553- [name] )* 553 • 500 / 502 : NOK [name] • Often desactivated for • 500 / 502 : NOK security reasons • Often this functionality is • Alternatives desactivated for security – User agent definitions reasons (account – Server side group expansion enumeration) 2020 - 2021 (c) A. Mariën 11
“Postmaster” address • Mandatory: ‘postmaster’ must exist • Used for: – error reporting – abuse reporting (SPAM) • Exception: mail can be send without domain, implies domain of SMTP server 2020 - 2021 (c) A. Mariën 12
RFC822 structure • Header format: “:” From: x@y.com • Field names: To: i@j.org HEADER – "Return-Path", Cc: u@v.net "Received", "Date", CR - LF "From", "Subject", "Sender", "To", “Cc”, Hello, “Bcc” RTFM BODY – "Message-ID”, Goodbye "References”, "Keywords”, "Subject” 2020 - 2021 (c) A. Mariën 13
SMTP envelop – RFC822 headers SMTP envelope: RCPT TO: d@x.com Conflicting data! MAIL FROM: f@y.comp So what? RFC822 message From: u@i.com How about Bcc: ? To: d@x.com Subject: all is discovered! Run while you can... 2020 - 2021 (c) A. Mariën 14
MIME Multipurpose Internet Mail Extensions 2020 - 2021 (c) A. Mariën 15
New Headers • MIME-Version: 1.0 Content type: • / • Content-type *(;=) – type := discrete-type / • Content-Transfer- composite-type – discrete-type := "text" / Encoding "image" / "audio" / "video" / "application" – composite-type := "message" / "multipart" • The subtype specification is MANDATORY • The type, subtype, and parameter names are not case sensitive 2020 - 2021 (c) A. Mariën 16
Encoding • "Content-Transfer- • standard encoding Encoding" Header Field mechanisms: 7bit, 8bit, • RFC 821 (SMTP) restricts binary, quoted-printable, mail messages base64 – to 7bit US-ASCII data – lines
"Quoted-Printable” • What: • Rules – Content-Transfer-Encoding: – White Space: quoted-printable • c == 9 => US-ASCII TAB, c == 32 US- ASCII SPACE • When: – Line Breaks: – data that largely consists of • a CRLF sequence in the text=> (RFC 822) line break: CRLF printable characters (also) in • Sequences like "=0D", "=0A", US-ASCII set "=0A=0D" and "=0D=0A" may appear • How: Quoted-printable: rules in data – General 8bit representation: • Soft line breaks – lines "=" + 2 two digit hexadecimal representation – longer lines: use "soft" line breaks: "=" as last character on line • example: US-ASCII "=", dec 61 => – example: "=3D" Listen carefully, I will only say this once. – Literal representation: Listen carefully, = • 33
Base64: encoding process • 3 byte input => 4 encoded characters (bytes) • Encoded is about 33 percent larger than un-encoded • How: – 3 8bit inputs => 24 bits => 4 * 6bit groups – each: single digit in the base64 alphabet – A 65-character subset of US-ASCII is used: 64 + special ("=") • 0-25 => A-Z • 26-51 => a-z • 52-61 => 0-9 • 62 => + • 63 => / – "=", is used to signify a special processing function • represented identically in all versions of ISO 646, including US-ASCII & EBCDIC. 2020 - 2021 (c) A. Mariën 19
Encoding/decoding bbbbbbbb bbbbbbbb bbbbbbbb bbbbbb bbbbbb bbbbbb bbbbbb F(bbbbbb) F(bbbbbb) F(bbbbbb) F(bbbbbb) 2020 - 2021 (c) A. Mariën 20
Encoding/decoding: end bbbbbbbb bbbbbbbb --- F(bbbbbb) F(bbbbbb) F(bbbb00) “=“ bbbbbbbb --- --- F(bbbbbb) F(bb0000) “=“ “=“ 2020 - 2021 (c) A. Mariën 21
MIME: Media types Basic: • Multipart: • application: octet-stream, – multiple entities of independent data types. postscript, pdf • Multipart subtypes: • audio: basic, mpeg – "mixed": a generic mixed • image: jpeg, gif set – "alternative": same data in • message: rfc822, news multiple formats • model: vrml – "parallel": to be viewed simultaneously • multipart: form-data, – "digest": default type of signed, mixed, alternative each part is "message/rfc822". • text: plain, html, xml • video: mpeg, quicktime 2020 - 2021 (c) A. Mariën 22
Multipart body must contain (MIME-typed) body parts: – each one preceded by a boundary line – followed by a closing boundary line – Content-Type: multipart/xxx; boundary="" – The boundary delimiter line: – CRLF-- – Final boundary delimiter line: – CRLF---- 2020 - 2021 (c) A. Mariën 23
Preamble and epilogue • Problem in multipart Content-type: multipart/mixed; specification: two boundary="simple" unused areas This is the preamble. • In general: not used: no --simple proper semantics Content-type: text/plain; • many implementations charset=us-ascii insert an explanatory message note for recipients who read the message with --simple-- MIME-challenged This is the epilogue. It is also software to be ignored. 2020 - 2021 (c) A. Mariën 24
MIME typing • Content handled by application • File recognition – Magic numbers – File extension – Fingerprinting content • Configuration – Application – MIME type – file extension(s) 2020 - 2021 (c) A. Mariën 25
References • RFC 2045: headers used to describe the structure of MIME messages • RFC 2046: general structure of the MIME media typing system and defines an initial set of media types • RFC 2047: to allow non-US-ASCII text data in header fields. • RFC 2049: conformance criteria & examples, acknowledgements, bibliography. 2020 - 2021 (c) A. Mariën 26
S/MIME • RFC 2311, 2633: S/MIME S/MIME: not restricted to Version 2&3 Message mail Specification • S/MIME provides the • can be used with any following cryptographic transport mechanism security services: that transports MIME – authentication data – message integrity – non-repudiation of origin • can be used in systems (using digital signatures) that use cryptographic – privacy security services that do – data security (using not require (or support) encryption). any human intervention 2020 - 2021 (c) A. Mariën 27
PKCS standards • "PKCS #1: RSA Encryption" • "PKCS #7: Cryptographic Message Syntax" • "PKCS #10: Certification Request Syntax" 2020 - 2021 (c) A. Mariën 28
Message structure: signed • Single PKCS#7 signedData format – MIME type: • application/pkcs7-mime;smime-type=signed-data • Composite message – MIME type: multipart/signed – Part1: text/plain, application/msword, ... – Part2: application/pkcs7-signature 2020 - 2021 (c) A. Mariën 29
PKCS #7 content types: • “data” – The data to be secured • “signedData” – to apply a digital signature to a message – to convey certificates • “envelopedData” – To provide confidentiality – Does not provide authentication 2020 - 2021 (c) A. Mariën 30
application/pkcs7-mime • MIME type used to carry PKCS #7 objects: envelopedData, signedData • general characteristics – always carries a single PKCS #7 object. – must always be BER encoding of the ASN.1 syntax describing the object 2020 - 2021 (c) A. Mariën 31
S/Mime type • The application/pkcs7-mime content type defines the optional "smime-type" parameter. • The intent of this parameter: to convey details about the security applied (signed or enveloped) along with information about the contained content. • S/MIME-types: – enveloped-data: EnvelopedData – signed-data: SignedData – certs-only: SignedData 2020 - 2021 (c) A. Mariën 32
Format for Signed-only Messages • Choice: – multipart/signed format can always be viewed by the receiver whether they have S/MIME software or not – signedData format: cannot be viewed by a recipient unless they have S/MIME facilities 2020 - 2021 (c) A. Mariën 33
PKCS#7: SignedData • ASN.1 structure for the SignedData content type – version – digestAlgorithms – contentInfo (or empty) – certificates (OPTIONAL) – crls (OPTIONAL) – signerInfos (SET OF): multiple signers 2020 - 2021 (c) A. Mariën 34
Example message Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary=boundary42 --boundary42 Content-Type: text/plain This is a clear-signed message. --boundary42 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s ghyHhHUujhJhjH77n8HHGTrfvbnj756tbB9HG4VQpfyF467GhIGfHfYT6 4VQpfyF467GhIGfHfYT6jH77n8HHGghyHhHUujhJh756tbB9HGTrfvbnj n8HHGTrfvhJhjH776tbB9HG4VQbnj7567GhIGfHfYT6ghyHhHUujpfyF4 7GhIGfHfYT64VQbnj756 --boundary42-- 2020 - 2021 (c) A. Mariën 35
References • RFC 1321: The MD5 Message Digest Algorithm" • RFC 2045: MIME Part 1: Format of Internet Message Bodies • RFC 2046: MIME Part 2: Media Types • RFC 1847: Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted • RFC 2313: PKCS #1: RSA Encryption Version 1.5 2020 - 2021 (c) A. Mariën 36
References • RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5 • RFC 2314: PKCS #10: Certification Request Syntax Version 1.5 2020 - 2021 (c) A. Mariën 37
POP3 2020 - 2021 (c) A. Mariën 38
POP3 • Post Office Protocol version 3 • Protocol for maildrop (pick-up) service • Simple protocol – advanced requirements: use IMAP – delivery: use SMTP • RFC 1939, STD 53 2020 - 2021 (c) A. Mariën 39
POP3 set-up POP3 client POP3 POP3 SMTP SMTP client server server POP3 client POP3 2020 - 2021 (c) A. Mariën 40
POP3 connection • TCP/IP connection Example: • Server assigned port number: 110 • telnet pop.somewhere.else 110 • Reply: two options – USER andre – +OK – PASS andre – -ERR – LIST • Multi-line response: – RETR 1 – . terminated – DELE 1 – QUIT 2020 - 2021 (c) A. Mariën 41
POP3 Commands • Always: • Authorization – QUIT – APOP name digest • Authorization state: • Transaction – USER name / PASS string – TOP msg n • Transaction state – UIDL [msg] – STAT / LIST [msg] / RETR msg / DELE msg / NOOP / RSET where msg is the message ordinal number 2020 - 2021 (c) A. Mariën 42
POP3 commands STAT • RETR • Response: • Reply: – +OK – +OK number of messages, – Message – . total number of bytes • DELE LIST • Response – +OK • LIST [message ordinal • Note number] – Message is only marked for deletion • Response: – Subsequent LIST or RETR commands fail – +OK – Actual removal: after QUIT command ONLY – – RSET: clears all deletion markings – ... – . 2020 - 2021 (c) A. Mariën 43
POP commands • TOP • Response – +OK – Header – First lines of the message – . • UIDL [] • Response – +OK – 1 jdkodoiezjfrj – 2 uikjendsiojdj – 3 jdsoioizehjkl – . 2020 - 2021 (c) A. Mariën 44
POP cmd APOP • APOP • Response: +OK or –ERR • The greeting banner must contain the challenge • The client computes md5(challenge+secret) • Challenge has msg-id format – +OK POP3 server ready 2020 - 2021 (c) A. Mariën 45
Mail client • Multi-protocol client – SMTP: sending mail – POP3: receiving mail • But possibly also – DNS • Mail relay name to IP • SMTP with target servers – LDAP: user and group look-up 2020 - 2021 (c) A. Mariën 46
Free software • UNIX systems: – Qpopper: http://qpopper.sourceforge.net/ • All – Xmail: http://xmailserver.org/ • Smtp server • Pop3 server 2020 - 2021 (c) A. Mariën 47
Mail message formats • RFC (2)822 • MIME • S/MIME 2020 - 2021 (c) A. Mariën 48
IMAP4 2020 - 2021 (c) A. Mariën 49
IMAP4 • Internet Message Access Protocol version 4 • Extensive, comprehensive protocol for post office access • Richer but more complicated than POP • RFC 2060 2020 - 2021 (c) A. Mariën 50
Connection oriented • TCP/IP connection • server port number: 143 • reply: OK or NO or BAD or BYE • Reply: – tagged (tag of request) – untagged • request/reply, but also unsolicited • Asynchronous operation possible 2020 - 2021 (c) A. Mariën 51
Tags in the reply Request ID: Tag usage: • In response to a request, the > Request007 “command” request ID is repeated in the reply “*”: < * ... • untagged server message < * ... • Not a reply; for instance quota < Request007 OK “command notifications completed” “+”: • continuation required (for instance: authentication) 2020 - 2021 (c) A. Mariën 52
Message attributes • Numbers – Unique ID – Sequential ID • Flags • IMAP server reception timestamp • RFC822 size • RFC822 Envelope structure • Body structure (MIME) 2020 - 2021 (c) A. Mariën 53
Message flags: system • \seen: Message has been “read” • \answered: Message has been answered • \flagged: Message is flagged • \deleted: Message is marked ‘to-be-deleted’ • \draft: message partially composed • \recent: new message notification flag 2020 - 2021 (c) A. Mariën 54
State diagram (from RFC 2060) Initial connection and server greeting 1 Non-authenticated 2 4 Authenticated 3 7 6 5 7 Selected 7 Logout and close connection 2020 - 2021 (c) A. Mariën 55
Commands Any state: non-authenticated state • CAPABILITY: which • AUTHENTICATE authentication “authentication mechanisms? mechanism” • NOOP: • LOGIN “user name” – polling command to trigger unsolicited (!) “password” status info – Session keep-alive (against time-out) • LOGOUT: end session 2020 - 2021 (c) A. Mariën 56
Example from RFC222: AUTHENTICATE • S: * OK IMAP4 Server • C: A001 AUTHENTICATE SKEY • S: + • C: bW9yZ2Fu • S: + OTUgUWE1ODMwOA== • C: Rk9VUiBNQU5OIFNPT04[...]TUFTSA== • S: A001 OK S/Key authentication successful 2020 - 2021 (c) A. Mariën 57
Commands: authenticated: Managing mailboxes Browsing • CREATE “mailbox name” • LIST “reference name” • DELETE “mailbox “wildcard mailbox name” name” • RENAME “existing – Browsing + metainfo (hierarchy separator) mailbox name” “new mailbox name” • STATUS “mailbox name” ( “status data item names” ) – Number of messages 2020 - 2021 (c) A. Mariën 58
Commands: authenticated: selecting current mailbox • SELECT “mailbox name”: – open read/write – Responses: untagged • * FLAGS (...) • * EXISTS • * RECENT • * OK [UNSEEN 134] • EXAMINE “mailbox name”: – open read-only, rest: see SELECT 2020 - 2021 (c) A. Mariën 59
Commands: selected state • CLOSE – Remove (silently) all messages marked for deletion • EXPUNGE – Remove (silently) all messages marked for deletion; unmarked responses: • * EXPUNGE • ... 2020 - 2021 (c) A. Mariën 60
FETCH command • Fetch Data item names: • BODY [][] – : RFC822 • Message set decomposition – : – Items: “” • • Example, first 100 bytes: • “*” (highest number) Sections: • : • BODY[HEADER] • , • BODY[TEXT] – Examples: • BODY[HEADER.FIELDS (field- • 7 name field-name)] • 5:100 • BODY[HEADER.FIELDS (DATE • 7,5:100,120,130:* FROM)] 2020 - 2021 (c) A. Mariën 61
FETCH command: RFC822 decomposition • Top-level: HEADER & TEXT • MIME: multipart/* – 1.HEADER & 1.TEXT & 1.MIME – 2.HEADER & 2.TEXT & 2.MIME – ... 2020 - 2021 (c) A. Mariën 62
FETCH command example • X007 FETCH 2:8 (FLAGS BODY[HEADER.FIELDS (DATE FROM)] BODY[TEXT]) • * 2 FETCH ... • ... • * 8 FETCH ... • X007 OK Fetch completed 2020 - 2021 (c) A. Mariën 63
SEARCH command • Conditions: examples: – ; ALL; – To ; BCC ; Cc – BODY ; SUBJECT – Before ; sentbefore ; sentsince ; senton – Answered; Deleted; ... – Unanswered; Undeleted; ... – Smaller 2020 - 2021 (c) A. Mariën 64
Search reply • X007 search From student unanswered • * search 5 8 12 45 77 123 453 • X007 OK search completed 2020 - 2021 (c) A. Mariën 65
IMAP URLs • URL type: IMAP • imap://imaphost?imap command 2020 - 2021 (c) A. Mariën 66
Mail infrastructure • Mailbox servers – POP/IMAP connectivity • SMTP gateways – Send/receive • SPAM gateways – Filtering (ex: messagelabs) • Anti Virus solutions – Server solutions • Webmail – Web - email gateway • Mobile mail – Blackberry, ActiveSync • Exchange & OWA 2020 - 2021 (c) A. Mariën 67
Security • No open relay • No email spoofing • Relay only for other Mail Relays • Refuse SMTP connections from any unknown client • Use *s variant of the protocols: smtps, imaps, … • Ensure proper authentication of senders • Distinguish internal/external senders • Use s/mime • In- & outgoing traffic filtering • Use host hardening, firewall • Use malware detection 2020 - 2021 (c) A. Mariën 68
Professional Service • Server doesn’t look like a spam exploder – Configure reverse DNS properly – Handle abuse reports promptly and properly – Look “legitimate” • Concern: availability – Volume: spam, attachments – Disk space! – A policy for • removing unread mail from mailboxes after some time • refusing more mail to mailboxes which are already too full 2020 - 2021 (c) A. Mariën 69
SPAM • Netiquette • Refuse some hosts: – ? – When reverse DNS not • Appropriate use policy OK – Required to have clear – Blacklists rules • blackholes.mail-abuse.org • correct reactions • dialups.mail-abuse.org – ignore • relays.mail-abuse.org – reply to postmaster only • Examine message bodies – Products exist – More expensive 2020 - 2021 (c) A. Mariën 70
Blacklist RSS – RBL DNS-based • Relay Spam Stopper • queryable DNS-based (RSS) database – http://work-rss.mail- • Lookup host: abuse.org/rss/ – $4.$3.$2.$1.blackholes. • Realtime Blackhole List mail-abuse.org. (RBL) • With $1.$2.$3.$4 the IP – http://www.mail- address of the possible abuse.org/rbl/ offender 2020 - 2021 (c) A. Mariën 71
Build-in anti-spam • White listing / blacklisting – http://mail-abuse.org/ (paying) – http://www.spamcop.net/bl.shtml – http://www.spamhaus.org/SBL/ • RFC 2822 adherence • Remove some SMTP commands • Reverse DNS checks 2020 - 2021 (c) A. Mariën 72
Electronic mail Alternatives 2020 - 2021 (c) A. Mariën 73
Electronic mail • Asynchronous communication via a message oriented system – Message: any data – Asynchronous: • Sending a message without waiting for confirmation • No handshake • Note: individual communication may be synchronous, or do a handshake (or even authentication) 2020 - 2021 (c) A. Mariën 74
Context • Communication mode – Talk, chat: interactive – SMS, e-mail: asynchronous • Other systems – May be able to work with internet standards – Work with proprietary mechanisms – Major “other” systems • Webmail • Lotus Notes • Microsoft exchange • X.400 2020 - 2021 (c) A. Mariën 75
X.400 MAIL 2020 - 2021 (c) A. Mariën 76
Genesis of X.400 • Quest: acceptable global mail standard by CCITT and ISO to solve incompatibility problems • Result: X.400 Series Recommendations – a superset of the existing systems – Idea behind this: easier integration later on • October 1984, CCITT X.400 series recommendations: X.400(84) • This was the first CCITT recommendation for a network application. 2020 - 2021 (c) A. Mariën 77
X.400 • Some features of X.400 – The store-and-forward mechanism – The hierarchical address space – The possibility of combining different types of body parts into one message body. • X.400 adapted best in Europe – There was not much equipment in place yet – Use X.400 as much as possible right from the beginning. – But: the expected success of X.400: disappointing 2020 - 2021 (c) A. Mariën 78
Components • Components: – User Agent (UA) – Message Transfer System (MTS) – Message Transfer Agent (MTA) • UA: – “A process that makes the services of the MTS available to the user” – A program that provides utilities to create, send, receive and perhaps archive messages. • MTS: – Transfers messages from an originating UA to a recipient UA. • MTA: – Data that is sent from UA to UA may be stored temporarily in several intermediate MTAs – A store-and- forward mechanism: MTA forwards received messages to a next MTA or to the recipient UA. 2020 - 2021 (c) A. Mariën 79
Mapping service elements Internet X.400 Reply-To IPMS.Heading.reply-recipients Subject IPMS.Heading.subject In-Reply-To IPMS.Heading.replied-to-ipm To IPMS.Heading.primary-recipients Cc IPMS.Heading.copy-recipients 2020 - 2021 (c) A. Mariën 80
Mapping rules RFC 822 -> X.400: X.400 -> RFC 822 • If Sender: is present • If – Sender: is mapped to IPMS.Heading.authorizing IPMS.Heading.originator -users is present – From: is mapped to – IPMS.Heading.originator is mapped to Sender: IPMS.Heading.authorizin g-users – IPMS.Heading.authorizing- users is mapped to From: • If not • If not – From: is mapped to – IPMS.Heading.originator is IPMS.Heading.originator mapped to From: 2020 - 2021 (c) A. Mariën 81
Human readable notations: • C=zz • ADMD=ade • PRMD=fhbo • O=a bank • S=plork • G=mary 2020 - 2021 (c) A. Mariën 82
X.400 addresses • X.400 address: a set of attributes • attributes: mandatory or optional • attribute: type and a value – example: Surname has type IA5text • Standard Attributes – attributes that all X.400 installations are supposed to 'understand' – example: 'country name', 'given name' or 'organizational unit' 2020 - 2021 (c) A. Mariën 83
Most important attributes (see LDAP!) • surName (S) • givenName (G) • initials (I*) (Zero or more) • generationQualifier (GQ) • OrganizationalUnits (OU1 OU2 OU3 OU4) • OrganizationName (O) • PrivateDomainName (PRMD) • AdministrationDomainName (ADMD) • CountryName (C) • Common Name (CN) • Combination of S, G, I* and GQ : the PersonalName (PN). 2020 - 2021 (c) A. Mariën 84
X.400 address notation styles • JTC: – G=jo; S=plork; O=a bank; OU1=owe; OU2=you; P=fhbo; A=ade; C=zz- DFN-EAN software: – G=jo; S=plork; OU=you; OU=owe; O=a bank; PRMD=fhbo; ADMD=ade; C=zz • RARE Working Group on Mail and Messaging: – C=zz; ADMD=ade; PRMD=fhbo; O=a bank; OU=owe; OU=you; S=plork; G=jo • RFC 1327: – /G=jo/S=plork/OU=you/OU=owe/O=a bank/P=fhbo/A=ade/C=zz/ – OU$you.OU$owe.O$a bank.P$fhbo.A$ade.C$zz 2020 - 2021 (c) A. Mariën 85
LOTUS NOTES E-MAIL 2020 - 2021 (c) A. Mariën 86
Lotus Notes: basis • Notes stores information in databases – Files with extension .nsf • Each database contains information about a particular subject • Examples: – Company Policies – Product Information 2020 - 2021 (c) A. Mariën 87
Database organization • many documents: search problem • A view is a way for Notes to display documents in a database. • A view often shows documents – in a particular order – only a portion of the documents 2020 - 2021 (c) A. Mariën 88
Designing a database • A database can contains many documents. – Example:Company Policies database • a topic about parking • one about sick days • Decide on the type of information the database will contain. • Databases can contain reports for to complete • Examples: – attendance reports – expense reports • Document creation – How: filling in a form of the database – forms contain • Fields • Buttons • ... 2020 - 2021 (c) A. Mariën 89
Mail transfer • Actually: not done with mail protocols • Uses database synchronization – Server and client have database – Database can be consulted locally or remotely – Databases can be synchronized: exact replica – Allows for off-line and on-line working (road warriors) 2020 - 2021 (c) A. Mariën 90
From proprietary to standards • Currently: supports internet standards • Example: migration from notes ID files to certificates (X.503v3) • Example: LDAP queries for address book • Supports access to POP3 and IMAP4 servers 2020 - 2021 (c) A. Mariën 91
Short note MAPI 2020 - 2021 (c) A. Mariën 92
MAPI • MAPI = Messaging Application Programming Interface • API: programmatic interface • Originally (and mainly): Microsoft only solution • Now some other mail clients like Eudora support it too 2020 - 2021 (c) A. Mariën 93
Simple MAPI Functions • MAPIAddress • MAPIDeleteMail • MAPIDetails • MAPIFindNext • MAPIFreeBuffer • MAPILogon • MAPILogoff • MAPIReadMail • MAPIResolveName • MAPISaveMail • MAPISendDocuments • MAPISendMail 2020 - 2021 (c) A. Mariën 94
You can also read