De la Xgu.com
Această pagină prezintă diferite moduri de a trimite corect mesajele de poștă electronică care conțin caractere non-ASCII în text și atașamente.
Scripturile diferitelor forumuri nu sunt de obicei concepute pentru o altă limbă decât limba engleză, iar atunci când le folosesc în limba rusă, ele generează mesaje incorecte. Majoritatea clienților de e-mail au învățat să înțeleagă scrisori incorect formate, dar nu toate, și cu atât mai mult nu toate tipurile de erori. Pietrele Podvodnye pot aștepta oriunde, și este mai bine să se facă programe care formează scrisori în conformitate cu standardele. Sfaturile oferite aici vă vor ajuta să trimiteți scrisorile potrivite în orice limbă. Dacă vedeți aici o discrepanță cu orice RFC - editați îndrăzneț sau scrieți în pagina de discuție.
[edit] Teoria
[citare necesare] Encoding
Doar caracterele ASCII sunt permise în antetul mesajului, astfel încât un șir care conține caractere non-ASCII (de exemplu, litere rusești) trebuie codificat.
În corpul mesajului, puteți utiliza caractere pe 8 biți (non-ASCII), deși cu unele limitări (lungimea maximă a șirului.). Prin urmare, pentru a transfera textul non-ASCII într-o formă nemodificată, este mai bine să îl codificați.
Fișierele atașate (mime, atașați) trebuie să fie codificate în baza64, astfel încât acestea să fie primite neschimbate.
[edit] RFC
[edit] Scripturi
Trimiteți la Perl
Avem nevoie de modulele MIME :: Base64 și Encode incluse în pachetul standard Perl ("module core").
Pentru a codifica antetele mesajului (subiect, expeditor, destinatar), vom folosi funcția de codare a modulului Encode. Are un mod special pentru codarea antetrilor de litere, în timp ce acceptă doar utf-8.
Deci, conectăm modulul și îl codificăm: folosiți Encode qw / encode decode /; numele meu $ Mail_subject = encode ('MIME-Header', decode ('utf8', 'Test Subject')); meu $ Mail_from = encode ('MIME-Header', decode ('utf8', 'Test Sender
Trebuie remarcat folosirea funcției de decodificare pentru a aduce textul la codificarea utf-8. Chiar dacă textul scriptului dvs. este deja în utf-8, trebuie să apelați funcția de decodare. Acest lucru este scris aici.
[edit] Utilizarea Mail :: Sendmail
Manualul indică faptul că modulul însuși va adăuga antetele specificate dacă acestea nu sunt specificate
[edit] Utilizarea MIME :: Lite
Secțiunea nu este scrisă.
Trimiteți la PHP
Trimiteți către Python
Folosind biblioteca smtplib
[edit] Trimiterea din shell-ul comenzii
[edit] Utilizarea sendmail
Multe programe de poștă electronică (în special, Exim4) au pus aliasul fișierului / usr / bin / sendmail pe sine, procesând trimiterea de e-mailuri și luând majoritatea steagurilor sendmail
Trimiterea unui mesaj din fișierul FILE.eml (formatul este un mesaj normal de poștă electronică, RFC 822):
(testat de lucru în FreeBSD de la 5 la 8 (inclusiv sendmail) și Debian 6 (symlink standard de la sendmail la exim4)):
[edit] Utilizarea mutt
Mutt este un client de mail consola (POP3, IMAP), unul dintre cele mai puternice. De asemenea, este convenabil ca ei să trimită scrisori cu atașamente din linia de comandă
Trebuie reținut faptul că mutt în mod implicit generează doar o literă, pentru a verifica dacă începe trimitemail sau echivalentul (configurat) în aproximativ același mod ca în paragraful anterior.
Așa că atașamentul a fost înțeleasă de către clientul de mail este închisă litere, și nu textul, atașamente de fișier Mutt trebuie să aibă extensia .eml (Content-type = mesaj / RFC822).
/.muttrc sau generat automat.
Sintaxă mai detaliată:
[edit] Folosind mpack
Mpack - vechiul program (Linux, FreeBSD), conceput pentru a împacheta fișierul în format MIME.
Dacă specificați mesajul de poștă electronică (sau mai multe) ca fișier de ieșire, fișierul va fi trimis utilizând sendmail sau înlocuitorul acestuia.
Caracteristici - puteți atașa un mesaj la un singur fișier, dar există o opțiune de dimensiune maximă, dacă este depășită, sunt generate mai multe fișiere de ieșire (litere).
[edit] Utilizarea biabam
Biabam nu știe cum să codifice corect textul rusesc atunci când este trimis. Dacă știți cum să remediați - scrieți aici.
Acest program utilizează clientul de e-mail obișnuit.
[edit] Referințe
[edit] Licență pentru text
Textul este disponibil sub licența Creative Commons Attribution / Share-Alike