web-dev-qa-db-fra.com

(WAMP / XAMPP) envoyer un courrier en utilisant SMTP localhost

Comment envoyer un courrier depuis SMTP localhost (en utilisant Wamp, Xampp ou etc ..)? PHP mail()) ne semble pas fonctionner en mode natif.

Quelqu'un peut-il donner les instructions?

29
T.Todua

Méthode 1 (préférée) - Utiliser hMailServer


Après l’installation, vous avez besoin de la configuration suivante pour envoyer correctement les messages de wampserver:

1) When you first open hMailServer Administrator, you need to add a new domain.
2) Click on the "Add Domain ..." button at the Welcome page. 
3) Under the domain text field, enter your computer's IP, in this case it should be 127.0.0.1.
4) Click on the Save button.
5) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
6) Enter "localhost" in the localhost name field.
7) Click on the Save button.

Si vous devez envoyer un courrier à l'aide d'un destinataire FROM d'un autre ordinateur, vous devez autoriser les envois de comptes externes à externes. Pour ce faire, procédez comme suit:

1) Go to Settings>Advanced>IP Ranges and double click on "My Computer" which should have IP address of 127.0.0.1
2) Check the Allow Deliveries from External to External accounts checkbox.
3) Save settings using Save button.

(Cependant, Windows Live/Hotmail a refusé tous les e-mails provenant d'adresses IP dynamiques, utilisés par la plupart des ordinateurs résidentiels. La solution consiste à utiliser un compte Gmail.)

Remarque pour utiliser les utilisateurs Gmail:

1) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
2) Enter "smtp.gmail.com" in the Remote Host name field.
3) Enter "465" as the port number
4) Check "Server requires authentication"
5) Enter gmail address in the Username
6) Enter gmail password in the password 
7) Check "Use SSL"

(Remarque, Le champ ne fonctionne pas avec gmail)
* p.s. Pour certaines personnes, il peut également être nécessaire de tout décocher sous require SMTP authentication dans :

  • pour les paramètres locaux: Paramètres> Avancé> Zones IP> "Poste de travail"
  • pour externe: Paramètres> Avancé> Plages IP> "Internet"

Méthode 2 - Utilisation de SendMail

Vous pouvez utiliser installation de SendMail .


Méthode 3 - Utiliser différentes méthodes

Utilisez n'importe lequel des ces méthodes .

36
T.Todua

Voici les étapes pour y parvenir:

  • Téléchargez le sendmail.Zip via ceci lien

    • Maintenant, extrayez le dossier et mettez-le dans C:/wamp /. Assurez-vous que ces quatre fichiers sont présents: sendmail.exe, libeay32.dll, ssleay32.ddl et sendmail.ini.
    • Ouvrez sendmail.ini et définissez la configuration comme suit:

    • smtp_server = smtp.gmail.com

    • smtp_port = 465
    • smtp_ssl = ssl
    • default_domain = localhost
    • error_logfile = error.log
    • debug_logfile = debug.log
    • auth_username = [votre_gmail_account_username] @ gmail.com
    • mot_de_passe_auth = [motdepasse_account_gmail_mail]
    • pop3_server =
    • pop3_username =
    • pop3_password =
    • force_sender =
    • force_recipient =
    • nom d'hôte = localhost

    • Accédez à votre compte email. Cliquez sur Gear Tool> Paramètres> Transfert et POP/IMAP> Accès IMAP. Cliquez sur "Activer IMAP", puis enregistrez vos modifications.

    • Exécutez votre serveur WAMP. Activez ssl_module sous Apache Module.

    • Ensuite, activez php_openssl et php_sockets sous PHP.

    • Ouvrez php.ini et configurez-le en utilisant les codes ci-dessous. En gros, il vous suffit de définir le chemin sendmail_path.

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP =
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i"
  • Redémarrer le serveur Wamp

J'espère que cela fonctionnera pour vous ..

5
Siraj Khan

Vous pouvez utiliser cette bibliothèque pour envoyer des emails, si vous avez un problème avec xampp local, wamp ...

class.phpmailer.php, class.smtp.php Écrivez ce code dans un fichier où votre fonction de courrier électronique appelle

    include('class.phpmailer.php');

    $mail = new PHPMailer();  
    $mail->IsHTML(true);
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465;
    $mail->Username = "your email ID";
    $mail->Password = "your email password";
    $fromname = "From Name in Email";

$To = trim($email,"\r\n");
      $tContent   = '';

      $tContent .="<table width='550px' colspan='2' cellpadding='4'>
            <tr><td align='center'><img src='imgpath' width='100' height='100'></td></tr>
            <tr><td height='20'>&nbsp;</td></tr>
            <tr>
              <td>
                <table cellspacing='1' cellpadding='1' width='100%' height='100%'>
                <tr><td align='center'><h2>YOUR TEXT<h2></td></tr/>
                <tr><td>&nbsp;</td></tr>
                <tr><td align='center'>Name: ".trim(NAME,"\r\n")."</td></tr>
                <tr><td align='center'>ABCD TEXT: ".$abcd."</td></tr>
                <tr><td>&nbsp;</td></tr>                
                </table>
              </td>
            </tr>
            </table>";
      $mail->From = "From email";
      $mail->FromName = $fromname;        
      $mail->Subject = "Your Details."; 
      $mail->Body = $tContent;
      $mail->AddAddress($To); 
      $mail->set('X-Priority', '1'); //Priority 1 = High, 3 = Normal, 5 = low
      $mail->Send();
2
Uresh Patel

vous pouvez directement envoyer un courrier depuis la fonction php mail () si vous avez spécifié le serveur smtp et le port smtp dans php.ini, demandez d’abord le identifiant du serveur SMTP à votre fournisseur de services Internet.

SMTP = smtp.wlink.com.np //put your ISP's smtp server

smtp_port = 25 // your ISP's smtp port.

ensuite, redémarrez simplement le serveur Apache et il commencera à fonctionner. Prendre plaisir ...

2
Techlord

Si l’un d’entre vous reçoit une erreur comme suit après réponse donnée par Afwe Wef

 Warning: mail() [<a href='function.mail'>function.mail</a>]: SMTP server response:

 550 The address is not valid. in c:\wamp\www\email.php

Allez à php.ini

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

Entrez [email protected] comme identifiant de messagerie que vous avez utilisé pour configurer le serveur hMails devant sendmail_from .

votre problème sera résolu.

Testé sur le serveur Wamp2.2 (Apache 2.2.22, php 5.3.13) sur Windows 8

Si vous obtenez également l'erreur suivante

"APPLICATION"   6364    "2014-03-24 13:13:33.979"   "SMTPDeliverer - Message 2: Relaying to Host smtp.gmail.com."
"APPLICATION"   6364    "2014-03-24 13:13:34.415"   "SMTPDeliverer - Message 2: Message could not be delivered. Scheduling it for later delivery in 60 minutes."
"APPLICATION"   6364    "2014-03-24 13:13:34.430"   "SMTPDeliverer - Message 2: Message delivery thread completed."

Vous avez peut-être oublié de changer le port de 25 à 465

0
Mukesh

Je préfère utiliser le script PHPMailer pour envoyer des courriers électroniques à partir de localhost, car cela me permet d'utiliser mon compte Gmail en tant que SMTP. Vous pouvez trouver PHPMailer à partir de http://phpmailer.worxware.com/ . Vous trouverez de l'aide sur l'utilisation de Gmail en tant que SMTP ou tout autre serveur SMTP à l'adresse suivante: http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp . J'espère que cela t'aides!

0
Mittal Patel