IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Problème code Email


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut Problème code Email
    Bonjour,
    Avant de commencer mes excuse si je ne poste pas au bon endroit.

    Se script se connecte à une base SQl et le script que j'utilise et en php voila pourquoi je pose ma question ici.

    Mon problème dans se code (que je connais pas) il envois aucun mail.
    Quand je vais sur Putty je tape mon login mon passe et les commandes suivants.
    cd www
    cd anni
    cd main
    ./email.pl
    C'est des commandes que j'ai lut sur des forums pour testé le script (s'il envois les mail).

    Mais j'ai des erreurs :
    (Mon-Login)(~)» cd www
    (Mon-Login)(~/www)» cd anni
    (Mon-Login)(~/www/anni)» cd main
    (Mon-Login)(~/www/anni/main)» ./email.pl
    ./email.pl: line 4: use: command not found
    ./email.pl: line 5: use: command not found
    ./email.pl: line 6: use: command not found
    ./email.pl: line 8: syntax error near unexpected token `('
    ./email.pl: line 8: `use POSIX qw( strftime );'
    (Mon-Login)(~/www/anni/main)»
    Du coup je ne c'est pas si le script fonctionne ou pas avec le cron :s

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    #!/usr/local/bin/perl
     
    use strict;
    use DBI;
    use CGI;
     
    use POSIX qw( strftime );
    my $mmddyyyy = strftime("%m/%d/%Y", localtime);
    my $mm = strftime("%m", localtime);
    my $dd = strftime("%d", localtime);
    my $yy = strftime("%Y", localtime);
     
    # Enter Database Info
     my $USERNAME = "Mon-Login-FTP";
     my $PASSWORD = "Passe-FTP";
     my $DATABASE = "Nom-Base-SQL";
     
    # connect to database
    my $dbh = DBI->connect("dbi:mysql:$DATABASE:localhost:3306", "$USERNAME", "$PASSWORD");
    my $settings1 = $dbh->prepare("select * From settings WHERE `ID` LIKE '0'");
    $settings1->execute();
    while (my ($Path, $To_Email, $From_Email, $Subject, $Monthly_Email, $Email_Reminders) = $settings1->fetchrow_array()) {
     
    #print "$Path $To_Email";
     
    #$settings1->execute();
     
    # prepare the query
    my $sth = $dbh->prepare("select * From phpbirthday WHERE `B_Date` LIKE '%-$mm-$dd%'");
     
    # execute the query
    $sth->execute();
    my $i = 0;
    while (my ($Name, $B_Date) = $sth->fetchrow_array()) {
    $i = $i+1;
    };
     
    # print "The Number is: $i";
    $sth->execute();
     
    # print $i;
    if (($Email_Reminders == 1) && ($i > 0))   {
    my $title='Rappel Anniversaire';
    open(MAIL, "|/usr/lib/sendmail -t");
    print MAIL "Content-type: text/plain\r\n"; 
     
    ## Mail Header
    print MAIL "To: $To_Email\n";
    print MAIL "From: $From_Email\n";
    print MAIL "Subject: $Subject\n\n";
     
    ## Mail Body
    print MAIL "Bonjour!,
    Urgent : E-mail de rappel automatique anniversaire .
    Les personnes suivantes ont leur anniversaire aujourd'hui:\n\n";
    while(my ($Name, $Address, $City, $State, $Postal, $Country, $B_Date) = $sth->fetchrow_array()) {
    my $age = $yy - $B_Date;
    print MAIL " $Name (Turns $age!)\n";
     
    #print "$Name fête son anniversaire aujourd'hui:  \n";
    };
    }
    print MAIL "\nCeci est un message automatique, s'il vous plaît ne pas répondre.
    $Path";
    close(MAIL);
     
    ################
    # MONTHLYEMAIL #
    ################
     
    # prepare the query
    my $sthMonthly = $dbh->prepare("select * From phpbirthday WHERE `B_Date` LIKE '%-$mm-%'");
     
    # execute the query
    $sthMonthly->execute();
    if (($Monthly_Email == 1) && ($dd == 1))   {
    my $title='Anniversaire du mois';
    open(MAIL, "|/usr/lib/sendmail -t");
    print MAIL "Content-type: text/plain\r\n"; 
     
    ## Mail Header
    print MAIL "To: $To_Email\n";
    print MAIL "From: $From_Email\n";
    print MAIL "Subject: $Subject\n\n";
     
    ## Mail Body
    print MAIL "Bonjour!,
    Cette E-mail et un rappel automatique des anniversaires du mois
    Les personnes suivantes ont leur anniversaire ce mois-ci:\n\n";
    while(my ($Name, $Address, $City, $State, $Postal, $Country, $B_Date) = $sthMonthly->fetchrow_array()) {
    my $age2 = $yy - $B_Date;
    print MAIL " $Name (Turns $age2!) $B_Date\n";
     
    #print "Cet utilisateur a son anniversaire ce mois-ci: $Name \n";
    };
    print MAIL "\nCeci est un message automatique, s'il vous plaît ne pas répondre.
    $Path";
    close(MAIL);
    };
    };

    Cordialement,

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Problème d'environnement, je pense, ce n'est pas Perl qui renvoie ces messages d'erreur...

    Essaie de mettre la ligne "shebang":

    à la première ligne du fichier, pas la seconde.

    Vérifie aussi que /usr/local/bin/ contient bien l'exécutable Perl.

    Sinon, tu peux aussi essayer comme suit:


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonsoir Lolo78,
    Vraiment merci de ton aide.

    j'ai bien placer le code a la 1er ligne comme tu me la suggéré :
    Pour cette commande je les testés aucune erreur, mais Toujours aucun mail :
    Question bête Le dossier et dans le bon répertoire ?
    Ou il faut mettre mon dossier anni dans cgi-bin ou le laissé dans le dossier www

    j'ai mis le script dans /home/login/www/anni/ <-- Dossier complet.

    Et pour le chemin du fichier email.pl je les laissé dans le dossier original "Main" /home/login/www/anni/main/email.pl


    Par contre pour :
    Vérifie aussi que /usr/local/bin/ contient bien l'exécutable Perl

    Je suis entrain de me renseigné au support technique de mon hébergeur

    Citation Envoyé par Lolo78 Voir le message
    Problème d'environnement, je pense, ce n'est pas Perl qui renvoie ces messages d'erreur...

    Essaie de mettre la ligne "shebang":

    à la première ligne du fichier, pas la seconde.

    Vérifie aussi que /usr/local/bin/ contient bien l'exécutable Perl.

    Sinon, tu peux aussi essayer comme suit:

    Cordialement,

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonsoir,
    Bon du coup sa marche :p

    En faite la solution c'est un droit 777 (attributs pour le fichier email.pl)

    par contre pour reçevoir un mail par jour j'ai mis le crontab 10 00 * * * touch /home/login/anni/main/email.pl

    Pour que sa envois un mail par jour a 00H10 mais j'ai un gros doute surtout sur touch

    Pouvez vous me dire a quoi sert Touch et si mon crontab et bon merci ?

    Ps : j'ai changer mon cron en 10 00 * * * /home/login/www/anni/main/email.pl
    Pour que sa envois le mail a 00h10 mais sa ne marche par contre la commande perl ./email.pl fonctionne la je comprend plus rien.

    Vous avez une idée ?

    Cordialement Stéphane,

Discussions similaires

  1. Mobiletag problème de lecture QR code email
    Par vanessatonton dans le forum Développement iOS
    Réponses: 1
    Dernier message: 24/04/2012, 07h55
  2. Réponses: 6
    Dernier message: 23/12/2006, 12h46
  3. [Mail] problème avec email automatique
    Par kitty2006 dans le forum Langage
    Réponses: 12
    Dernier message: 31/08/2006, 17h01
  4. [Problème code] Afficher/Masquer div
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2006, 14h18
  5. [Mail] Besoin d'aide sur code email avec PJ
    Par flysurfer dans le forum Langage
    Réponses: 1
    Dernier message: 23/02/2006, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo