Bonjour à tous,

Je teste actuellement l'envoi de mail via gmail. Je fais mes envois par l'appel d'une routine à laquelle je passe en paramètre le corps de mail que je souhaite envoyé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
#!/usr/bin/perl -w
use strict;
use warnings;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTPS;
use Try::Tiny;
 
sub send_mail{
 
 my $body = shift @_;
 
        my $transport = Email::Sender::Transport::SMTPS->new(
            host => 'smtp.gmail.com',
            ssl  => 'starttls',
            sasl_username => 'sender@xxxxx.com',
            sasl_password => 'mYS3creTP@sSW0rd',
        debug => 0, # or 1
        );
 
        use Email::Simple::Creator; # or other Email::
        my $message = Email::Simple->create(
            header => [
                From    => 'no_reply@domain.com',
                To      => 'moi@domain.com',
                Subject => 'TEST MAIL',
            ],
            body => "$body",
        );
        try {
            sendmail($message, { transport => $transport });
        } catch {
            die "Error sending email: $_";
        };
}
 
#### MAIN ######
 
#init message
my $message ;
 
$message = ("Hello,\n");
$message = ("ca va?\n");
 
send_mail($message );
cependant le corps du message est vide lorsque je recois le mail. Je ne vois pas mon erreur.
je pense que je ne récupère pas correctement ma valeur de $message dans ma fonction.
Peut etre dois je plutot utiliser MIME::Lite ?

merci pour votre aide,