2009-10-05 9 views
0

Comment puis-je envoyer des messages à Gmail en utilisant Perl? Voici ce que je suis en train:Comment puis-je envoyer des messages à Gmail avec une pièce jointe, en Perl?

my $mailer = Email::Send->new(
    { 
     mailer  => 'SMTP::TLS', 
     mailer_args => [ 
      Host  => 'smtp.gmail.com', 
      Port  => 587, 
      User  => 'xxx', 
      Password => 'xxx', 
     ] 
    } 
); 

use Email::Simple::Creator; # or other Email:: 

use File::Slurp; 
@arrIrc = read_file("$ircFile"); 
my $email = Email::Simple->create(
    header => [ 
     From => 'xxx', 
     To  => "$configList{email}", 
     Subject => "The summary of logfile $channelName", 
    ], 
    body => "@arrIrc", 
); 
+2

Pour Gmail ou ** avec ** Gmail? –

+0

Pour Gmail et avec Gmail (C'est une fois que je m'authentifie à Gmail, puis envoyer des mails à d'autres comptes en utilisant ce gmail) –

+0

Je pouvais envoyer du courrier sans pièce jointe. Dans le commentaire suivant, je vais télécharger le script. –

Répondre

2

Vous pouvez utiliser MIME::Lite pour composer un message, que vous envoyez ensuite votre processus de sendmail local. Cependant, afin de parler aux serveurs de gmail, vous devez have SSL certificates set up. Il y a probablement des instructions plus détaillées pour cela sur superuser.

+0

Donc, vous voulez dire qu'une fois que les certificats SSL sont configurés manuellement, je peux envoyer du courrier avec pièce jointe en utilisant MIME :: Lite à Gmail (à condition que j'avais donné nom d'utilisateur et mot de passe du compte gmail). Droite? –

5

Utilisez Net::SMTP::SSL pour parler à GMail.

Voir MIME::Lite inline images sur Perlmonks pour un exemple.

+0

Je me demande si je peux avoir une pièce jointe avec Net :: SMTP :: SSL? –

+3

SMTP est pour le transport. Si vous avez un message formaté correctement (Mime-Lite peut vous aider avec cela), il enverra volontiers tout ce que vous lui remettre. –

3

Si vous souhaitez envoyer des messages à Gmail, vous faites la même chose que vous le feriez pour envoyer du courrier n'importe où. Si vous voulez envoyer des messages via Gmail, il y a le module Email::Send::Gmail. Le simple fait de taper votre question dans Google m'a conduit à Sending Mail Through Gmail with Perl par Mark Sanborn.

+0

Malheureusement, l'article de Mark utilise Net :: SMTP :: TLS qui est très endommagé et non maintenu. Par exemple, il va dupliquer et paralyser vos pièces jointes si vous essayez de les ajouter. Il y a maintenant Net :: SMTP :: TLS :: ButMaintained qui fonctionne, mais qui provoque une grave pollution de l'espace de noms. Voir http://search.cpan.org/perldoc?Net::SMTP::TLS::ButMaintained – MichielB

Questions connexes