Archief - Perl: mail versturen via SMTP

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Jerom

Legacy Member
Allen,

Ik heb even getwijfeld over het juiste subforum (zou ook onder Unix kunnen vallen) maar ik heb het dan toch maar hier gezet. Bedoeling is om vanop een machine met Ubuntu 12.04 server een mail te sturen via de SMTP-server van Telenet, en dit in Perl.

Een tijdje zitten Googlen en uiteindelijk tot volgend script gekomen:
Code:
use strict;
use warnings;

use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP ();
use Email::Simple ();
use Email::Simple::Creator ();

my $smtpserver = 'uit.telenet.be';
my $smtpport = 25;
my $smtpuser   = 'bXXXXXX';
my $smtppassword = 'XXXXXXXXX';

my $transport = Email::Sender::Transport::SMTP->new({
  host => $smtpserver,
  port => $smtpport,
  sasl_username => $smtpuser,
  sasl_password => $smtppassword,
});

my $email = Email::Simple->create(
  header => [
    To      => '[email protected]',
    From    => '[email protected]',
    Subject => 'Test',
  ],
  body => "Hallo!\n",
);

sendmail($email, { transport => $transport });

Dit geeft echter volgend resultaat (stacktrace onderaan):
Code:
failed AUTH: Command unknown: 'AUTH'

Tweede poging vertrok hiervan:

Code:
#!/usr/bin/perl

use strict;
use warnings;

use Mail::Sender;

my $smtp = 'uit.telenet.be';
my $smtp_port = 25;

my $from = 'bXXXXXX';
my $pass = 'XXXXXX';

my $dmail = '[email protected]';
my $subj = 'Hello';
my $msg = 'MSG!';


my $sender = new Mail::Sender {
        smtp => $smtp,
        from => $from,
        auth => 'LOGIN',
        port => $smtp_port,
        authid => $from,
        authpwd => $pass,
 on_errors => 'undef',

# debug_level => 4,
# debug => \*STDERR,
} ;

$sender->MailMsg({to => $dmail,subject => $subj,msg => $msg }) 
 or die "Unable to send mail: ".$Mail::Sender::Error ."\n";

Maar ook dit lijkt niet te lukken:

Code:
print() on closed filehandle GEN0 at /usr/share/perl5/Mail/Sender.pm line 1014.

Iemand enig idee hoe ik hiermee verder ga? Alvast bedankt!



Stacktrace eerste script:

Code:
Trace begun at /usr/share/perl5/Email/Sender/Transport/SMTP.pm line 95
Email::Sender::Transport::SMTP::_throw('Email::Sender::Transport::SMTP=HASH(0x8c918c0)', 'failed AUTH', 'Net::SMTP=GLOB(0x980f13c)') called at /usr/share/perl5/Email/Sender/Transport/SMTP.pm line 73
Email::Sender::Transport::SMTP::_smtp_client('Email::Sender::Transport::SMTP=HASH(0x8c918c0)') called at /usr/share/perl5/Email/Sender/Transport/SMTP.pm line 104
Email::Sender::Transport::SMTP::send_email('Email::Sender::Transport::SMTP=HASH(0x8c918c0)', 'Email::Abstract=ARRAY(0x8c9180c)', 'HASH(0x97d4958)') called at /usr/share/perl5/Email/Sender/Role/CommonSending.pm line 27
Email::Sender::Role::CommonSending::__ANON__ at /usr/share/perl5/Try/Tiny.pm line 76
eval {...} at /usr/share/perl5/Try/Tiny.pm line 67
Try::Tiny::try('CODE(0x97f90f4)', 'Try::Tiny::Catch=REF(0x97dcfb0)') called at /usr/share/perl5/Email/Sender/Role/CommonSending.pm line 37
Email::Sender::Role::CommonSending::send('Email::Sender::Transport::SMTP=HASH(0x8c918c0)', 'Email::Abstract=ARRAY(0x8c9180c)', 'HASH(0x97f90e0)') called at /usr/share/perl5/Email/Sender/Simple.pm line 110
Email::Sender::Simple::send_email('Email::Sender::Simple', 'Email::Abstract=ARRAY(0x8c9180c)', 'HASH(0x97a2194)') called at /usr/share/perl5/Email/Sender/Role/CommonSending.pm line 27
Email::Sender::Role::CommonSending::__ANON__ at /usr/share/perl5/Try/Tiny.pm line 76
eval {...} at /usr/share/perl5/Try/Tiny.pm line 67
Try::Tiny::try('CODE(0x97a2248)', 'Try::Tiny::Catch=REF(0x97d4ad4)') called at /usr/share/perl5/Email/Sender/Role/CommonSending.pm line 37
Email::Sender::Role::CommonSending::send('Email::Sender::Simple', 'Email::Simple=HASH(0x8c91a00)', 'HASH(0x8c918e8)') called at /usr/share/perl5/Sub/Exporter/Util.pm line 69
Sub::Exporter::Util::__ANON__('Email::Simple=HASH(0x8c91a00)', 'HASH(0x8c918e8)') called at sendmail3.pl line 30
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan