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,