web-dev-qa-db-fra.com

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

Le compte My ISP Nécessite que j'envoie un nom d'utilisateur et un mot de passe pour le courrier sortant SMTP.

Comment faire pour 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 From: (sendmail_from= ) .

64
Charles Faiga

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

  1. PHPMailer - Tutoriel
  2. PEAR - Tutoriel
  3. Fonctions personnalisées - Voir diverses solutions dans la section des notes: http://php.net/manual/en/ref.mail.php
40
daremon

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

SMTP = smtp.example.com
smtp_port = 25
username = [email protected]
password = yourmailpassord
sendmail_from = [email protected]

Ces détails sont les mêmes que pour les paramètres Outlook.

40
sugunan

Utilisez Fake sendmail for Windows pour envoyer un courrier.

  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. Puis configurez C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
[email protected]
auth_password=your_password
  1. Ce qui précède fonctionnera contre un compte Gmail. Et puis configurez php.ini:

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

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

17
Henrik Rosvall

PHP a 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 = [email protected]
12
blavla

Je préfère l'outil PHPMailer car il ne nécessite pas de 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.

5
Eric_WVGG

Après avoir travaillé toute la journée, j'ai finalement trouvé une solution. Voici comment j'envoie 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 test PHP. Voir ci-dessous.
<?php
    $message = "test message body";
    $result = mail('[email protected]', '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 dans le dossier sendmail que vous venez de créer s'il ne fonctionne pas.

Référence:

5
B Seven
  1. Installez Postfix (compatible Sendmail).
  2. Modifier /etc/postfix/main.cf lire:
#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éer /etc/postfix/sasl_passwd, entrer:
smtp.server.net username:password
  1. Type # /usr/sbin/postmap sasl_passwd

  2. Puis lancez: service postfix reload

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

5
Jay Sudo

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

2
William Keller

Ces réponses sont obsolètes et amorties. Meilleur entrainement..

composer require phpmailer/phpmailer

La prochaine sur votre fichier sendmail.php nécessite juste 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 = "[email protected]";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("[email protected]", "Recepient Name");
$mail->addAddress("[email protected]"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("[email protected]", "Reply");

//CC and BCC
$mail->addCC("[email protected]");
$mail->addBCC("[email protected]");

//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";
}

Cela peut être configurer comme vous le souhaitez ..

2
Delino
  1. Installez le dernier hMailServer . "Exécutez hMailServer Administrator" à la dernière étape.
  2. Connectez-vous à "localhost".
  3. "Ajouter un domaine ..."
  4. Définissez "127.0.0.1." en tant que "Domaine", cliquez sur "Enregistrer".
  5. "Paramètres"> "Protocoles"> "SMTP"> "Remise du courrier électronique"
  6. Définissez "localhost" comme "Nom d'hôte local", fournissez vos données dans la section "SMTP Relayer" , cliquez sur "Enregistrer".
  7. "Paramètres"> "Avancé"> "Plages IP"> "Poste de travail"
  8. Désactivez la case à cocher "Adresses de messagerie externes vers externes" du groupe "Authentification SMTP requise".
  9. Si vous avez modifié le fichier php.ini, réécrivez ces 3 valeurs:

"SMTP = localhost",

"smtp_port = 25",

"; sendmail_path =".

Crédit: Comment configurer WAMP (localhost) pour envoyer des emails en utilisant Gmail?

0
Tamás Bolvári

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

0
Alex Jolig