NET :: SMTP :: Pipelining

Envoyer un e-mail à l'aide de l'extension de pipelure ESMTP
Télécharger maintenant

NET :: SMTP :: Pipelining Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Marc Beyer
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~marcb/

NET :: SMTP :: Pipelining Mots clés


NET :: SMTP :: Pipelining La description

Envoyer e-mail en utilisant l'extension ESMTP PIPELINING Net :: SMTP :: Pipelining est un module Perl qui implémente le côté client de l'extension PIPELINING SMTP, tel que spécifié par la RFC 2920 (http://tools.ietf.org/html/rfc2920). Il étend le populaire module Net :: SMTP par le sous-classement, vous pouvez utiliser Net :: SMTP :: objets Pipelining comme si elles étaient nets réguliers :: SMTP objects.SMTP PIPELINING augmente l'efficacité de l'envoi de messages via une connexion réseau à latence élevée en réduisant le nombre d'allers-retours-commande-réponse dans la communication client-serveur. Pour mettre en évidence la façon dont diffère régulièrement SMTP de PIPELINING (et aussi la façon de travailler avec ce module), voici une comparaison ($ s est le Net :: SMTP ou Net :: SMTP :: objet pipelining, $ de l'expéditeur et $ au destinataire): SMTP régulière en utilisant net :: SMTP: réponse du code Perl commande client serveur s- $> mail ($ de); MAIL FROM: 250 Sender ok $ s-> à ($ à); RCPT TO: 250 bénéficiaire ok s- $> (données); DATA 354 Start mail, fin avec CRLF.CRLF $ s-> datasend ( "text"); texte $ s-> dataend (); . 250 messages acceptedSending ce message nécessite 4 échanges aller-retour entre le client et le serveur. En comparaison, en utilisant SMTP Pipelined Net :: SMTP :: Pipelining (lors de l'envoi de plus d'un message) nécessite seulement 2 allers-retours pour le dernier message et 1 aller-retour pour les autres: la réponse du code Perl de commande client Server $ s-> pipeline ({mail => $ de, à => $ à données => "texte",}); MAIL FROM: RCPT TO: DATA 250 Sender ok 250 Récipiendaire ok 354 Start mail, fin avec CRLF.CRLF texte . $ S-> pipeline ({mail => $ de, à => $ à données => "texte",}); MAIL FROM: RCPT TO: DATA 250 Message envoyé 250 Sender ok 250 Récipiendaire ok 354 Start mail, fin avec texte CRLF.CRLF. $ S-> pipe_flush (); 250 messages Sentas vous pouvez le voir, l'appel de pipeline ne termine pas l'envoi d'un seul message. En effet, un.) Mandats RFC 2920 que les données soient la dernière commande dans un groupe de commandes et b pipelinée.), Il est à ce point incertain si un autre message sera envoyé par la suite. Si un autre message est envoyé immédiatement après, le courrier, les commandes RCPT DATA et pour ce message peut être inclus dans le même groupe de commande que le texte du message précédent, sauvant ainsi un aller-retour. Si vous voulez traiter les messages les uns après les autres sans les mélanger dans le même groupe de commande, vous pouvez appeler pipe_flush après chaque appel à pipeline, qui fonctionne bien, mais moins efficace (la communication client-serveur nécessite alors deux allers-retours par un message au lieu d'un) .SYNOPSIS utilisation net :: SMTP :: Pipelining; mon smtp $ = Net :: SMTP :: Pipelining-> new ( "localhost"); mon expéditeur $ = q (sender@example.com); mon (@ succès, @ a échoué); mon adresse $ (q (s1@example.com), q (s2@example.com), q (s3@example.com)) {$ pipeline smtp-> ({mail => $ expéditeur, à => $ adresse, data => qq (A partir de: $ expéditeur Ceci est un mail à l'adresse $),}) ou pousser @failed, @ {$ smtp-> pipe_rcpts_failed ()}; pousser @successful, @ {$ smtp-> pipe_rcpts_succeeded ()}; } $ Smtp-> pipe_flush () ou pousser @failed, @ {$ smtp-> pipe_rcpts_failed ()}; pousser @successful, @ {$ smtp-> pipe_rcpts_succeeded ()}; imprimer « Envoyé avec succès aux adresses suivantes: @successful «Mettre en garde » envoyer à @failed Échec "Si scalaire (@failed)> 0; # gestion des erreurs plus complexes if ($ smtp-> pipeline ({mail => $ expéditeur, à => $ adresse, data => qq (A partir de: $ expéditeur! Ceci est un mail à l'adresse $),})) {mes erreurs $ = $ smtp-> pipe_errors (); pour mon e $ (@ $ erreurs) {print "Une erreur est survenue :, nous avons dit $ e -> {commande}"; imprimer « et le serveur a répondu $ e -> {code} $ e -> {message} " } } Exigences: · Perl


NET :: SMTP :: Pipelining Logiciels associés