php.ini & amp; SMTP = - comment passez-vous nom d'utilisateur & amp; mot de passe

StackOverflow https://stackoverflow.com/questions/112190

  •  02-07-2019
  •  | 
  •  

Question

Mon compte ISP nécessite que j'envoie un nom d'utilisateur & amp; mot de passe pour le courrier SMTP sortant.

Comment faire en sorte que PHP l'utilise lors de l'exécution de php.mail ()? Le fichier php.ini ne contient que des entrées pour le serveur (SMTP =) et De: (sendmail_from =) .

Était-ce utile?

La solution

La commande

PHP mail () ne prend pas en charge l'authentification. Vos options:

  1. PHPMailer - Tutoriel
  2. PEAR - Didacticiel
  3. Fonctions personnalisées - Voir les différentes solutions dans la section Notes: http://php.net /manual/en/ref.mail.php

Autres conseils

J'applique les détails suivants sur le fichier php.ini. ça marche très bien.

SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com

Ces informations sont identiques à celles des paramètres Outlook.

Utilisez Fake sendmail for Windows pour envoyer un courrier électronique.

  1. Créez un dossier nommé sendmail dans C: \ wamp \ .
  2. Extrayez ces 4 fichiers dans le dossier sendmail : sendmail.exe , libeay32.dll , ssleay32.dll et sendmail.ini .
  3. Configurez ensuite C: \ wamp \ sendmail \ sendmail.ini :
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. Ce qui précède fonctionnera avec un compte Gmail. Et puis configurez php.ini:

      

    sendmail_path = & C; C: \ wamp \ sendmail \ sendmail.exe -t "

  2. Maintenant, redémarrez Apache et c’est tout ce que vous avez à faire.

PHP a l'authentification sur la commande mail!

Ce qui suit fonctionne pour moi sur WAMPSERVER (Windows, PHP 5.2.17)

php.ini

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

Je préfère l'outil PHPMailer , car il ne nécessite pas PEAR. Mais de toute façon, vous avez un malentendu: vous ne voulez pas de paramètre PHP-server pour l’utilisateur et le mot de passe SMTP. Cela devrait être un paramètre par application (ou par page). Si vous souhaitez utiliser le même compte sur différentes pages PHP, ajoutez-le à un type de fichier settings.php.

Après avoir travaillé toute la journée, j'ai finalement trouvé une solution. Voici comment envoyer des messages à partir de Windows XP avec WAMP.

  1. Utilisez le serveur SMTP de Google. Vous avez probablement besoin d'un compte.
  2. Téléchargez et installez Fake Sendmail . Je viens de le télécharger, de le décompresser et de le placer dans le dossier WAMP.
  3. Créez un fichier de test PHP. Voir ci-dessous.
<?php
    $message = "test message body";
    $result = mail('recipient@some-domain.com', 'message subject', $message);
    echo "result: $result";
?>
  1. Mettez à jour votre fichier php.ini et votre fichier sendmail.ini (sendmail.ini se trouve dans le dossier sendmail).
  2. Vérifiez le fichier error.log du dossier sendmail que vous venez de créer s'il ne fonctionne pas.

Référence:

  1. Installez Postfix (compatible Sendmail).
  2. Modifiez /etc/postfix/main.cf comme suit:
#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
  1. Créez / etc / postfix / sasl_passwd , entrez:
smtp.server.net username:password
  1. Type # / usr / sbin / postmap sasl_passwd

  2. Puis exécutez: service postfix reload

Maintenant, PHP va lancer le courrier comme d'habitude avec la commande sendmail -t -i et Postfix va l'intercepter et le relayer sur votre serveur SMTP que vous avez fourni.

Utilisez Mail :: factory dans le package Mail PEAR. Exemple.

Ces réponses sont obsolètes et amorties. Meilleure pratique ..

composer require phpmailer/phpmailer

La prochaine sur votre fichier sendmail.php nécessite simplement ce qui suit

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "from@yourdomain.com";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("recepient1@example.com", "Recepient Name");
$mail->addAddress("recepient1@example.com"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("reply@yourdomain.com", "Reply");

//CC and BCC
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Ceci peut être configuré à votre guise.

Considérant une réponse dans cette question , le paquet PEAR Mail est en PHP 4 généralement déjà installé, et ce tutoriel très simple vous montre les quelques lignes de code que vous devez ajouter à votre fichier php http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

  1. Installez le dernier hMailServer . " Exécuter hMailServer Administrator " dans la dernière étape.
  2. Connexion à "localhost".
  3. "Ajouter un domaine ..."
  4. Définir "127.0.0.1." en tant que "Domaine", cliquez sur "Enregistrer".
  5. " Paramètres " > " Protocoles " > "SMTP" > "Envoi de courrier électronique"
  6. Définissez " localhost " en tant que "Nom d'hôte local", , indiquez vos données dans le "Relayer SMTP". section , cliquez sur "Enregistrer".
  7. " Paramètres " > "Avancé" > "Gammes IP" > "Mon ordinateur"
  8. Désactiver les "adresses de messagerie externes à externes". Cochez la case "Requérir l'authentification SMTP". groupe.
  9. Si vous avez modifié le fichier php.ini, réécrivez ces 3 valeurs:

"SMTP = localhost",

"smtp_port = 25",

" ; sendmail_path = "..

Credit: Comment configurer WAMP (hôte local) pour envoyer un courrier électronique à l'aide de Gmail?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top