NET :: SMTP :: Pipelining

E-Mails senden mit ESMTP-Pipelining-Erweiterung
Jetzt downloaden

NET :: SMTP :: Pipelining Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Marc Beyer
  • Website des Verlags:
  • http://search.cpan.org/~marcb/

NET :: SMTP :: Pipelining Stichworte


NET :: SMTP :: Pipelining Beschreibung

Senden Sie eine E-Mail mit der ESMTP-Pipelining-Erweiterung NET :: SMTP :: Pipelining ist ein Perl-Modul, das die Clientseite der SMTP-Pipelining-Erweiterung implementiert, wie von RFC 2920 (http://tools.ietf.org/html/rfc2920) angegeben. Es erweitert das beliebte Net :: SMTP-Modul mit dem Unterklassen Durch Reduzieren der Anzahl der Befehlsantwort-Rundfahrten in der Client-Server-Kommunikation. Um die Art und Weise hervorzuheben, dass sich das reguläre SMTP von der Pipelining (und auch der Arbeitsweise mit diesem Modul arbeitet), ist hier ein Vergleich ($ S ist das Netz :: SMTP oder Netz :: SMTP :: Pipelining-Objekt, $ aus dem Absender und $ zum Empfänger): Regelmäßige SMTP mit NET :: SMTP: Perl-Code-Client-Befehlsserver-Antwort $ s-> mail ($ aus); E-Mail von: 250 Sender OK $ s-> bis ($ to); RCPT an: 250 Empfänger OK $ S-> Daten (); Daten 354 Start Mail starten, ende mit crlf.crlf $ s-> datasend ("text"); Text $ S-> Datenend (); . 250 Nachricht akzeptiert Diese Nachricht erfordert 4 Rundreise-Austausch zwischen Client und Server. Im Vergleich, Pipelined SMTP mit NET :: SMTP :: Pipelining (beim Senden von mehr als einer Nachricht) erfordert nur 2 Rundfahrten für die letzte Nachricht und 1 Rundreise für die anderen: Perl-Code-Client-Befehlsserver-Antwort $ s-> Pipeline ({mail => $ von, zu => $ to, data => "text",}); Mail von: RCPT an: Daten 250 Sender OK 250 Empfänger OK 354 Start-Mail, Ende mit crlf.crlf Text. $ s-> pipeline ({mail => $ von, zu => $ to, data => "text",}); E-Mail von: RCPT an: Daten 250 Nachricht gesendet 250 Sender OK 250 Empfänger OK 354 Start Mail, Ende mit Crlf.crlf-Text. $ s-> pipe_flush (); 250 Message Sentas Sie können sehen, der Pipeline-Anruf erfüllt das Senden einer einzelnen Nachricht nicht. Dies liegt daran, dass ein.) RFC 2920-Mandate, dass Daten der letzte Befehl in einer Pipelined-Befehlsgruppe sein und b.) Es ist an diesem Punkt nicht sicher, ob eine andere Nachricht anschließend gesendet wird. Wenn eine andere Nachricht unmittelbar danach gesendet wird, können die E-Mail-, RCPT- und Datenbefehle für diese Nachricht in dieselbe Befehlsgruppe wie der Text der vorherigen Nachricht aufgenommen werden, wodurch eine Rundreise gespart wird. Wenn Sie Nachrichten nach dem anderen verarbeiten möchten, ohne sie in derselben Befehlsgruppe zu mischen, können Sie Pipe_Flush nach jedem Anruf in die Pipeline aufrufen, das gut funktioniert, aber weniger effizient sein wird (die Client-Server-Kommunikation erfordert dann zwei Rundfahrten erforderlich Nachricht anstelle von einem) .synopsis verwenden net :: smtp :: pipelining; mein $ smtp = net :: smtp :: pipelining-> neu ("localhost"); mein $ sender = q (sender@example.com); mein (@ erfolgreich, @ fehlgeschlagen); Für meine $-Adresse (Q (s1@example.com), q (s2@example.com), q (s3@example.com)) {$ smtp-> pipeline ({mail => $ sender, to => $ Adresse, Daten => QQ (von: $ Sender Dies ist eine E-Mail an $ Adresse),}) oder Push @failed, @ {$ smtp-> pipe_rcpts_failed ()}; Push @successful, @ {$ smtp-> pipe_rcpts_sorted ()}; } $ smtp-> pipe_flush () oder Push @Failed, @ {$ smtp-> pipe_rcpts_failed ()}; Push @successful, @ {$ smtp-> pipe_rcpts_sorted ()}; drucken "erfolgreich an folgende Adressen gesendet: @successful "; Warn" fehlgeschlagen an @failed "Wenn Skalar (@failed)> 0; # mehr komplizierte Fehlerbehandlung if (! $ smtp-> pipeline ({mail => $ sender, to => $ address, data => qq (von: $ sender) Dies ist eine E-Mail an $ Adresse),}) {My $ -Fehler = $ smtp-> pipe_errors (); Für mein $ e (@ $ -Fehler) {drucken "Ein Fehler ist aufgetreten:, sagten wir $ e -> {command}"; Drucken "und der Server antwortete $ e -> {Code} $ E -> {Message} " } } Anforderungen: · Perl.


NET :: SMTP :: Pipelining Zugehörige Software