Mesaj İletim Protokolü
Theodore H. Myer
D. Austin Henderson
BBN-TENEX
30 Nisan 1975
Bu belge, RFC 561'de ele alınanların ötesinde bir dizi mesaj alanını tanımlar. Genel mesaj biçimi RFC 561 ile uyumludur; RFC 561 içinde tanımlanan çeşitli alanların kapsamlı biçimde kullanımını içerir. Bu belgenin amacı, bu ek alanların sözdizimi ve anlambilimi ile ilgili olarak ARPANET standartlarını belirlemektir. Burada ele alınan tüm alanların tüm Mesaj Sunucuları tarafından otomatik olarak işleneceği beklenmemektedir; ancak bu alanları kullanmak isteyen sitelerin üzerinde çalışabileceği bir standardın bulunması gereklidir.
Bu belge, insanlar tarafından işleme özellikleri ile makineler tarafından işleme özellikleri arasında dar bir denge kurmaya çalışır. Genel görüş, otomatik işleme sağlanmasa bile listelenen alanların insanlar için yararlı olduğudur. Çoğu durumda, makine tarafından okunabilir gösterimler açılı ayraçlar (<>) içine alınmıştır; böylece otomatik süreçlerin herhangi bir alanda nerede ve ne zaman arama yapacağını kolay ve belirsizlik içermeyen bir şekilde belirlemesi sağlanır. Tüm belirtim, denemelere olanak tanımak amacıyla aşırı derecede genel tutulmuştur. Deneyime dayalı gelecekteki belgeler daha belirli olmaya çalışacaktır. Bu belge, yalnızca <RFC 561>'i izleyen bir sonraki adımdır.
Bu belge iki bölümden oluşur. Bölüm I, temel mesaj sözdizimini tanımlayan RFC 561'in ilgili kısımlarını içerir. Bölüm II ise yeni (ve mevcut) başlık alanlarını ve bunların önerilen kullanım biçimlerini listeler.
BÖLÜM I: TEMEL MESAJ SÖZDİZİMİ
<message> ::= <header><crlf><body>
<header> ::= <required header><optional header>
<required header> ::= <date item><sender item>
<date item> ::= DATE:<sp><date><sp>AT<sp><time>-<zone><crlf>
<date> ::= <vdate> ! <tdate>
<vdate> ::= <dayofmonth><SP><vmonth><SP><vyear>
<tdate> ::= <tmonth>/<dayofmonth>/<tyear>
<dayofmonth> ::= bir veya iki ondalık basamak
<vmonth> ::= JAN ! FEB ! MAR ! APR ! MAY ! JUN !
JUL ! AUG ! SEP ! OCT ! NOV ! DEC
<tmonth> ::= bir veya iki ondalık basamak
<vyear> ::= dört ondalık basamak
<tyear> ::= iki ondalık basamak
<zone> ::= EST ! EDT ! CST ! CDT ! MST ! MDT !
PST ! PDT ! GMT ! GDT
<time> ::= dört ondalık basamak
<sender item> ::= SENDER:<sp><user><sp>AT<sp><host><crlf>
<optional header> ::= <subjects><optional items>
<subjects> ::= !<subject item> !
<subject item><subjects>
<subject item> ::= SUBJECT:<sp><line><crlf>
<optional items> ::= <optional item> ! <optional item>
<optional items>
<optional item> ::= <messid> ! <addressee item> !
<other item>
<addressee item> ::= <addressee keyword>:<sp><addressee list><crlf>
<addressee keyword> ::= TO: ! CC: ! BCC:
<messid> ::= Message-ID:<sp>[<Net Address>]<line><crlf>
<other item> ::= <other keyword>:<sp><line><crlf>
<other keyword> ::= FROM ! IN-REPLY-TO ! REFERENCES !
KEYWORD ! PRECEDENCE !
MESSAGE-CLASS !
SPECIAL-HANDLING ! AUTHENTICATION !
ACCESSION-KEY
<address list> ::= <addressee> ! <addressee><addressee list>
<addressee> ::= <mailbox> ! <mailbox group>
<mailbox> ::= <user><host spec><attention spec>
<host spec> ::= !@<host>
<attention spec> ::= (ATTN:<sp><user list>)
<user list> ::= <user> ! <user><user list>
<mailbox group> ::= <group name>:(<group numbers>)
<group numbers> ::= ! (<mailbox list>)
<mailbox list> ::= <mailbox> ! <mailbox>,<mailbox list>
<body> ::= <line><CRLF> ! <line><CRLF><body>
<user> ::= <word>
<host> ::= standart bir ana makine adı
<group name> ::= ! <word>
<line> ::= CR ve LF hariç 128 ASCII
karakterinden herhangi birini içeren bir dize
<word> ::= CR, LF ve SP hariç 128 ASCII
karakterinden herhangi birini içeren bir dize
<CRLF> ::= CR LF
<SP> ::= boşluk
Notlar
- Bir mesaj en fazla bir adet MESSAGE-ID öğesine sahip olabilir.
- Aynı anahtar kelimeye sahip tüm öğeler birlikte gruplanmalıdır.
Lütfen aşağıdakilere dikkat edin:
- Anahtar kelimelerin büyük veya küçük harf kullanımı — özellikle 'FROM', 'DATE', 'SUBJECT', 'AT',
, , ve — önemsizdir. Örneğin 'FROM' yukarıdaki resmi sözdiziminde büyük harflerle görünse de, gerçek bir mesajın başlığında 'FROM', 'from' veya 'From' gibi biçimlerde bulunabilir. biçimini düzenlemeye yönelik herhangi bir girişimde bulunulmamıştır; yalnızca boşluk karakteri dışlanmıştır. - Zamanın içinde herhangi bir noktalama işareti bulunmaz.
BÖLÜM II: MESAJ BAŞLIK ALANLARI
A. GÖNDEREN TANIMLAMA ALANLARI
FROM
Bu alan, bu mesajın gönderilmesini isteyen kişinin kimliğini içerir. Mesajın bir kişi tarafından başka bir kişi adına girildiği durumlarda, kullanıcının belirttiği gönderici alanı olması beklenir. Mesaj oluşturma süreci varsayılan olarak bu alanı mesajı giren kullanıcıya ayarlamalıdır. [FROM ve SENDER için kullanım, RFC 561'dekinden farklıdır.]
SENDER
Bu alan, mesajı gönderen kişinin kimliğini içerir. Bu alanın mesaj oluşturma süreci tarafından otomatik olarak ayarlanması beklenir. Bazı sitelerin dış iletişimlerde bu alanı dahil etmeyebileceği mümkündür.
AUTHENTICATION
Bu alan, hangi gönderici alanlarının ve hangi işletim sistemleri tarafından doğrulandığının bir açıklamasını içerir. Bu alan mesaj iletim ve/veya alım süreçleri tarafından oluşturulmalıdır (FTP/İşletim Sistemi düzeyi).
Mevcut sistemlerin yalnızca SENDER alanını doğrulayabileceği beklenmektedir; ancak daha sonraki sistemler FROM alanının gerçekten SENDER'a onun adına hareket etme yetkisi verip vermediğini doğrulayan mekanizmalara sahip olabilir. FROM doğrulandığında, dış dağıtım için artık SENDER alanının gerekli olmayacağı öngörülmektedir.
B. BAŞVURU TANIMLAMA ALANLARI
MESSAGE-ID
Bu alan, bu mesaja başvurmak için kullanılan benzersiz bir tanımlayıcı içerir. Bir mesaj tanımlayıcısının biçimi şu şekildedir:
[Net Address]Text String CRLF
Örnekler:
[ISIB]7-DEC-74.14:23:45
[ARC]QLOURNAL 39274a3
Mesaj tanımlayıcısının benzersizliği, her net-adresi mesaj işlemcisinin, net-adresini izleyen metni o net-adresi için benzersiz yapmasıyla sağlanır. Bu özellikle site adını değil, net-adresini ifade eder. Bu durum, örneğin BBN'in mesaj sistemi içinde BBN olarak adreslenebilen dört makinenin tamamı için benzersiz tanımlayıcılar ayırmasına olanak tanır ve böylece kullanıcıları için daha bütünleşik bir hizmet ortaya çıkar.
Net-adresinden sonra gelen metin burada tanımlanmamıştır; çünkü bu belirtimle ilişkili sorunlar şu anda çok büyüktür. Bununla birlikte net-adresi, otomatik süreçlerin kendilerinin takip eden metinle akıllı biçimde ilgilenip ilgilenemeyeceğini belirlemesine olanak tanımalıdır. Böylece yerel mesaj okuyucu tarafından birkaç tür otomatik işleme mümkün olur:
- Eğer site okuyucu tarafından bilinen bir dosyalama mekanizması kullanıyorsa, okuyucu mesajı geri getirebilir.
- Eğer site uzaktan mesaj erişimini destekliyorsa (protokol şu anda tanımlı değildir), mesaj kimliği uzak siteye iletilebilir ve mesaj geri alınabilir.
- Eğer mesaj Datacomputer içinde dosyalanmışsa (tüm mesaj kimliği, net-adresi dahil, bir tutamaç olarak kullanılarak), okuyucu bunu Datacomputer'dan geri alabilir.
IN-REPLY-TO
Bu alanın içeriği, bu mesajın yanıt verdiği önceki yazışmaları tanımlar. Eğer bu alanda mesaj tanımlayıcıları kullanılıyorsa, bunlar açılı ayraçlar (<>) içine alınmalıdır.
REFERENCES
Bu alanın içeriği, bu mesajın atıfta bulunduğu diğer yazışmaları tanımlar. Eğer mesaj tanımlayıcıları kullanılıyorsa, bunlar açılı ayraçlar (<>) içine alınmalıdır.
KEYWORDS
Bu alan, mesajdan anahtar kelimeleri veya ifadeleri içerir ve bunlar virgülle ayrılır.
C. ALICI TANIMLAMA ALANLARI
TO
Bu alan, mesajın birincil alıcılarının kimliğini içerir.
CC
Bu alan, mesajın ikincil alıcılarının kimliğini içerir.
BCC
Bu alan, mesajın üçüncül alıcılarının kimliğini içerir. Bu alan birincil ve ikincil alıcılara sunulmamalıdır; ancak erişim kontrolü için bilgi sağlamak amacıyla kaydedilebilir.
D. MESAJ TÜRÜ TANIMLAMA ALANLARI
PRECEDENCE
Bu alan mesajın önemini ve aciliyetini açıklar. Makine tarafından okunabilir gösterimler açılı ayraçlar (<>) içine alınacaktır.
mesajın mümkün olan en kısa sürede teslim edilmesi gerektiği anlamına gelir. öncelikli işlemenin gerekli olmadığı anlamına gelir.
Bu alana düz metin de eklenebilir.
MESSAGE-CLASS
Bu alan mesajın "hukuki" durumunu açıklar.
Örnekler: Official, Unofficial, Record, Off the Record, Junk Mail.
Bu alanın otomatik olarak işlenmesi hemen beklenmemektedir. Bazı mesaj oluşturma süreçleri örneğin her zaman şunu ekleyebilir:
MESSAGE CLASS: Unofficial ARPANET Message
SPECIAL-HANDLING
Bu alan, mesajın alıcı tarafında nasıl ele alınacağına ilişkin özel talimatları içerir. Makine tarafından okunabilir gösterimler açılı ayraçlar (<>) içine alınacaktır.
mesaj alım sürecinin kullanıcıya kopyaları başkalarına dağıtma konusunda yardımcı olmaması gerektiği anlamına gelir.
Bu alana düz metin de eklenebilir.