Bonjour,
J'ai donc découvert PHPMailer pour l'envoi de mails (qui arrivent ) à partir d'un site internet.
Des mails du genre de ceux que je vais recevoir quand l'un d'entre vous répondra à ce message.
Par contre, j'ai un souci avec le lien : si je consulte la boîte mail dans mon navigateur, alors en effet je peux cliquer sur le lien et je suis dirigée vers la page idoine.
Mais, dans Mozilla Thunderbird (qui a un certain succès - je ne peux donc pas l'ignorer) le lien ne fonctionne pas. Pourtant le mail est bien au format html, le lien est bien en bleu souligné, bref en apparence tout va bien. Sauf que non. Quand je clique il ne se passe rien.
(alors que quand je clique par exemple sur un lien vers ce forum, il fonctionne parfaitement - donc à priori ce ne sont pas mes paramétrages Thunderbird qui posent problème)
Un exemple de mail :
Le code de ma fonction sendMail() :
(Je me suis permise de modifier les informations perso tel que l'adresse mail et le mot de passe)
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 function sendMail($sujet, $message, $destinataires, $expediteur) { // Instantiation and passing `true` enables exceptions $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = 2; // Enable verbose debug output $mail->CharSet = 'UTF-8'; $mail->isSMTP(); // Send using SMTP $mail->Host = 'blabla.com '; // Set the SMTP server to send through $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'monmail@monprovider.fr'; // SMTP username $mail->Password = '****'; // SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged $mail->Port = 465; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above //Recipients $mail->setFrom('monmail@monprovider.fr', 'Administratrice du site'); $mail->addAddress($destinataires); // Add a recipient $mail->addReplyTo($expediteur); // Pour ajouter l'adresse à laquelle répondre (en général celle de la personne ayant rempli le formulaire) $mail->isHTML(true); // Set email format to HTML $mail->Subject = $sujet; $mail->Body = $message ; //$mail->AltBody = 'C\est le message, sans balise html par exemple lencodage.fr c\'est le lien'; $mail->send(); } catch (Exception $e) { echo "Message n'a pas pu être envoyé : {$mail->ErrorInfo}"; } }
Et le code du message :
Qu'est-ce qui cloche dans cette histoire ? Mon lien est bien entre des balises <a>, j'ai un target=_blank (je sais pas si c'est utile dans ce cas précis), je n'oublie pas les guillemets ...
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 $message = "Bonjour, <br><br> Vous recevez cet email parce que votre " . "mairie a ajouté votre adresse email, conformément à votre " . "demande, à la liste de celles qui peuvent accéder à l'espace" . "<strong> réservé</strong> du site rizaucourt-buchey.fr. <br>" . "Pour terminer votre inscription, merci de cliquer sur " . "ce lien afin de choisir un mot de passe :<br> " . "<a href='test.site.php' " . "target=_blank> " . "rizaucourt-buchey.fr/inscription</a>.<br><br>" . "Conformément à la loi informatique et liberté, vous " . "pourrez à tout moment supprimer votre " . "email de notre base de données en cliquant sur ce lien : <br>" . "<a href='test.site.php' " . "target=_blank> " . "rizaucourt-buchey.fr/desinscription</a>.<br><br>" . "Vous avez aussi la possibilité de contacter directement" . " votre mairie pour toute suppression ou modification de" . " vos données personnelles.";
Je sèche.
D'avance merci de votre aide
Partager