par ecrivain77 16-Septembre-2022

Bonjour
j'avais déjà essayé la function mail().

<?php
ini_set('SMTP','localhost');
     // Plusieurs destinataires
     $to  = 'exemple@fr.scc.com>'; //, sally@example.com'; // notez la virgule

     // Sujet
     $subject = 'Demande de création de ticket REGUL';

     // message
     $message = '
     <html>
      <head>
       <title>Calendrier des anniversaires pour Août</title>
      </head>
      <body>
       <p>Voici les anniversaires à venir au mois d\'Août !</p>
       <table>
        <tr>
         <th>Personne</th><th>Jour</th><th>Mois</th><th>Année</th>
        </tr>
        <tr>
         <td>Josiane</td><td>3</td><td>Août</td><td>1970</td>
        </tr>
        <tr>
         <td>Emma</td><td>26</td><td>Août</td><td>1973</td>
        </tr>
       </table>
      </body>
     </html>
     ';

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers[] = 'MIME-Version: 1.0';
     $headers[] = 'Content-type: text/html; charset=iso-8859-1';

     // En-têtes additionnels
     // $headers[] = 'To: HD <safranbugtrackeradc@fr.scc.com>';
     // $headers[] = 'From: Anniversaire <anniversaire@example.com>';
     // $headers[] = 'Cc: anniversaire_archive@example.com';
     // $headers[] = 'Bcc: anniversaire_verif@example.com';

     // Envoi
     mail($to, $subject, $message, implode("\r\n", $headers));
?>

Mais j'ai cette erreur qui s'affiche.

PHP Warning:  mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\inetpub\wwwroot\DevAdminPage-SansDossiers\mailenvoi1.php on line 42

j'ai regardé le fichier php.ini en local, le port 25 est bien déclaré.

J'ai aussi essayé avec ini_set, pas de changement.

Mais je n'aurai pas la main sur le fichier php.ini du serveur IIS externe.

Merci pour votre aide si précieuse.

1 Réponse

par Antoine 16-Septembre-2022

Bonjour,

Tout d'abord êtes vous bien sure d'avoir un serveur de mail sur votre environnement de développement ?

Si vous développez en local, sur un ordinateur Windows, avec Wamp par exemple, vous n'avez pas de serveur de mail, donc il est tout à fait normal que vous obteniez l'erreur suivante :

Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in ...

Si vous êtes certain que sur votre environnement de développement, vous disposez d'un serveur de mail opérationnel, l'autre seule raison pour laquelle vous obtenez ce message d'erreur est le blocage du port 25 par un firewall.

En outre je vous conseille vivement d'utiliser plutôt la librairie PHPMailer au lieu de la fonction mail(). PHPMailer est beaucoup plus robuste et flexible.

Vous trouverez plusieurs tutoriels sur Google pour installer et configurer PHPMailer ; avec Gmail par exemple comme serveur d'envoi de mail.

par ecrivain77 16-Septembre-2022

Bonjour,
Merci beaucoup pour votre réponse.
Non je ne sais même pas si je pourrais utiliser le serveur Mail de la société externe.
De plus je ne pourrais modifier le fichier php.ini. Ni installer PHPMailer sur le serveur IIS.
Mais en fait il serait bien de faire autrement.

En fait ce qu'il faut vraiment c'est ouvrir l'Outlook de l'user et remplir le mail à sa place. Il n'aura plus qu'à faire envoyer lui-même.
Ce qui permettrait de ne pas avoir à paramétrer les connexions.
Est-ce possible ?

Merci beaucoup.

par Antoine 16-Septembre-2022

Oui vous pouvez créer un lien HTML pour envoyer un mail via le client mail de l'utilisateur, tout en spécifiant les destinataires, le titre et le corps du mail :

<a href = "mailto:utilisateur01@exemple.com?cc=utilisateur02@exemple.com&bcc=utilsateur03@exemple.com&subject=Sujet du mail&body=Contenu du mail">Envoyer le mail</a>

Remarque : Les caractères tels que les tabulations, les retours chariot, les sauts de page, les espaces, et les autres caractères spéciaux du titre et du corps du mail doivent être encodés comme dans une URL (CF fonction urlencode en PHP).

Confère cette autre question plus d'information.

Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses d'Antoine et d'autres internautes.

2.6k questions

3k réponses

...