php.ini & amp; SMTP = - comment passez-vous nom d'utilisateur & amp; mot de passe
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 =)
.
La solution
PHP mail ()
ne prend pas en charge l'authentification. Vos options:
- PHPMailer - Tutoriel
- PEAR - Didacticiel
- 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.
- Créez un dossier nommé
sendmail
dansC: \ wamp \
. - Extrayez ces 4 fichiers dans le dossier
sendmail
:sendmail.exe
,libeay32.dll
,ssleay32.dll
etsendmail.ini
. - Configurez ensuite
C: \ wamp \ sendmail \ sendmail.ini
:
smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password
-
Ce qui précède fonctionnera avec un compte Gmail. Et puis configurez php.ini:
sendmail_path = & C; C: \ wamp \ sendmail \ sendmail.exe -t "
-
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.
- Utilisez le serveur SMTP de Google. Vous avez probablement besoin d'un compte.
- 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.
- 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"; ?>
- Mettez à jour votre fichier php.ini et votre fichier sendmail.ini (sendmail.ini se trouve dans le dossier sendmail).
- Vérifiez le fichier error.log du dossier sendmail que vous venez de créer s'il ne fonctionne pas.
Référence:
- Installez Postfix (compatible Sendmail).
- 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
- Créez
/ etc / postfix / sasl_passwd
, entrez:
smtp.server.net username:password
-
Type #
/ usr / sbin / postmap sasl_passwd
-
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
- Installez le dernier hMailServer . " Exécuter hMailServer Administrator " dans la dernière étape.
- Connexion à "localhost".
- "Ajouter un domaine ..."
- Définir "127.0.0.1." en tant que "Domaine", cliquez sur "Enregistrer".
- " Paramètres " > " Protocoles " > "SMTP" > "Envoi de courrier électronique"
- Définissez " localhost " en tant que "Nom d'hôte local", , indiquez vos données dans le "Relayer SMTP". section , cliquez sur "Enregistrer".
- " Paramètres " > "Avancé" > "Gammes IP" > "Mon ordinateur"
- Désactiver les "adresses de messagerie externes à externes". Cochez la case "Requérir l'authentification SMTP". groupe.
- 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?