$from = "[email protected]";
$headers = "From:" . $from;
echo mail ("[email protected]" ,"testmailfunction" , "Oj",$headers);
J'ai du mal à envoyer des e-mails en PHP. Je reçois une erreur: SMTP server response: 530 SMTP authentication is required
.
J'avais l'impression que vous pouvez envoyer des e-mails sans SMTP pour vérifier. Je sais que ce courrier sera probablement filtré, mais cela n'a pas d'importance pour le moment.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com
C'est la configuration dans le php.ini
fichier. Comment dois-je configurer SMTP? Existe-t-il des serveurs SMTP qui ne nécessitent aucune vérification ou dois-je configurer un serveur moi-même?
mail()
fonction intégrée de PHP .'phpmailer_init'
crochet d'action. C'est un moyen pratique de configurer WordPress pour le courrier SMTP ou Amazon SES (qui prend en charge les connexions SMTP).ou, pour plus de détails, lisez la suite .
la source
php mail()
problèmes de fonction godaddy - 2017 - ne devrait pas avoir à télécharger PHPMailer ou une autre ressource tierce - merciPour les utilisateurs d'Unix, mail () utilise en fait la commande Sendmail pour envoyer des e-mails. Au lieu de modifier l'application, vous pouvez modifier l'environnement. msmtp est un client SMTP avec une syntaxe CLI compatible Sendmail, ce qui signifie qu'il peut être utilisé à la place de Sendmail. Cela ne nécessite qu'une petite modification de votre php.ini.
Alors même la fonction modeste mail () peut fonctionner avec la qualité SMTP. C'est très utile si vous essayez de connecter une application existante à des services de messagerie comme sendgrid ou mandrill sans modifier l'application.
la source
mail()
à quelque chose qui prend en charge SMTP. Je vous remercie!Le problème est que la
mail()
fonction PHP a une fonctionnalité très limitée. Il existe plusieurs façons d'envoyer du courrier depuis PHP.mail()
utilise le serveur SMTP sur votre système. Il existe au moins deux serveurs que vous pouvez utiliser sous Windows: hMailServer et xmail . J'ai passé plusieurs heures à les configurer et à les monter. Le premier est plus simple à mon avis. À l'heure actuelle, hMailServer fonctionne sur Windows 7 x64.mail()
utilise le serveur SMTP sur une machine distante ou virtuelle avec Linux. Bien sûr, un vrai service de messagerie comme Gmail ne permet pas de connexion directe sans informations d'identification ni clés. Vous pouvez configurer une machine virtuelle ou en utiliser une située sur votre réseau local. La plupart des distributions Linux ont un serveur de messagerie prêt à l'emploi. Configurez-le et amusez-vous. J'utilise par défaut exim4 sur Debian 7 qui écoute son interface LAN.Quel que soit votre choix, je vous recommande d'utiliser une couche d'abstraction. Vous pouvez utiliser la bibliothèque PHP sur votre machine de développement exécutant Windows et simplement
mail()
fonctionner sur une machine de production avec Linux. La couche d'abstraction vous permet d'échanger les pilotes de messagerie en fonction du système sur lequel votre application s'exécute. Créez uneMyMailer
classe abstraite ou une interface avec unesend()
méthode abstraite . Hérite de deux classesMyPhpMailer
etMySwiftMailer
. Mettresend()
en œuvre la méthode de manière appropriée.la source
Voici un moyen de le faire avec PHP PEAR
Si vous utilisez Gmail SMTP, n'oubliez pas d'activer SMTP dans votre compte Gmail, sous Paramètres
EDIT: Si vous ne trouvez pas Mail.php sur debian / ubuntu, vous pouvez installer php-pear avec
Ensuite, installez l'extension de messagerie:
Ensuite, vous devriez pouvoir le charger simplement
require_once "Mail.php"
sinon il se trouve ici:/usr/share/php/Mail.php
la source
Certains serveurs SMTP fonctionnent sans authentification, mais si le serveur nécessite une authentification, il n'y a aucun moyen de contourner cela.
Les fonctions de messagerie intégrées de PHP sont très limitées - la spécification du serveur SMTP n'est possible que dans WIndows. Sur * nix,
mail()
utilisera les binaires du système d'exploitation.Si vous souhaitez envoyer un e-mail à un serveur SMTP arbitraire sur le net, envisagez d'utiliser une bibliothèque comme SwiftMailer . Cela vous permettra d'utiliser, par exemple, les serveurs sortants de Google Mail.
la source
Dans les cas où vous hébergez un site Wordpress sous Linux et avez accès au serveur, vous pouvez éviter quelques maux de tête en installant msmtp qui vous permet d'envoyer via smtp à partir de la fonction standard de php mail (). msmtp est une alternative plus simple à postfix qui nécessite un peu plus de configuration.
Voici les étapes:
Installez msmtp
Créez un nouveau fichier de configuration:
... avec les informations de configuration suivantes:
Vous devez remplacer les données de configuration représentées par tout ce qui se trouve entre "<" et ">" (inclus, supprimez-les). Pour l'hôte / nom d'utilisateur / mot de passe, utilisez vos informations d'identification normales pour envoyer des e-mails via votre fournisseur de messagerie.
Dites à PHP de l'utiliser
Ajoutez cette seule ligne:
La documentation complète peut être trouvée ici:
https://marlam.de/msmtp/
la source
Pour une autre approche, vous pouvez prendre un fichier comme celui-ci:
et envoyez comme ceci:
https://php.net/function.curl-setopt
la source