Trimiterea de e-mailuri din scripturi

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 „)); meu $ Mail_to = encode ('MIME-Header', decode ('utf8', 'Test Recipient „));







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

[edit] Materiale pentru configurarea sistemelor de mail pe Xgu.ru







Articole similare

Trimiteți-le prietenilor: