php.ini & SMTP = - wie geben Sie Benutzernamen und Passwort
Frage
My ISP
Konto erfordert, dass ich einen Benutzernamen und Passwort für ausgehende SMTP
Mail.
Wie erhalte ich PHP
dies zu verwenden, wenn php.mail()?
Ausführen Die php.ini
Datei enthält nur Einträge für den Server (SMTP= )
und From: (sendmail_from= )
.
Lösung
PHP mail()
Befehl unterstützt keine Authentifizierung. Ihre Optionen:
- PHPMailer - Tutorial
- PEAR - Tutorial
- Benutzerdefinierte Funktionen - verschiedene Lösungen in den Anmerkungen Siehe: http://php.net /manual/en/ref.mail.php
Andere Tipps
I gelten folgende Angaben zu php.ini. seine Werke in Ordnung.
SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com
Diese Details sind die gleichen wie auf Outlook-Einstellungen.
Verwenden Sie Gefälschte Sendmail für Windows Mail zu senden.
- Erstellen Sie einen Ordner mit dem Namen
sendmail
inC:\wamp\
. - Extrahieren Sie diese 4-Dateien in
sendmail
Ordner.sendmail.exe
,libeay32.dll
,ssleay32.dll
undsendmail.ini
- Dann konfigurieren
C:\wamp\sendmail\sendmail.ini
:
smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password
-
Die oben arbeitet gegen ein Google Mail-Konto. Und dann php.ini konfigurieren:
sendmail_path = "C: \ wamp \ sendmail \ sendmail.exe -t"
-
Jetzt neu starten Apache, und das ist im Grunde alles, was Sie tun müssen.
PHP funktioniert haben die Authentifizierung auf dem Mail-Kommando!
Folgende ist für mich auf WampServer (Fenster, PHP 5.2.17) arbeiten
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
Ich ziehe das PHPMailer Werkzeug, da es nicht PEAR erfordert. Aber so oder so, haben Sie ein Mißverständnis: Sie wollen nicht eine PHP-serverweite Einstellung für die SMTP-Benutzer und Passwort. Dies sollte eine pro-App (oder pro-Seite) -Einstellung. Wenn Sie das gleiche Konto über verschiedene PHP-Seiten verwenden, fügen Sie es zu einer Art settings.php Datei.
Nach den ganzen Tag daran arbeiten, fand ich endlich eine Lösung. Hier ist, wie ich von Windows XP mit WAMP senden.
- Verwenden Sie die Google-SMTP-Server. Sie müssen wahrscheinlich ein Konto.
- Herunterladen und Installieren von rel="nofollow">. Ich habe gerade heruntergeladen es, es dekomprimiert und in den WAMP Ordner.
- Erstellen Sie eine Test PHP-Datei. Siehe unten.
<?php $message = "test message body"; $result = mail('recipient@some-domain.com', 'message subject', $message); echo "result: $result"; ?>
- Aktualisieren Sie Ihre php.ini-Datei und Ihre sendmail.ini Datei (sendmail.ini in dem Sendmail-Ordner ist).
- Überprüfen Sie die Datei error.log im send Ordner, den Sie gerade erstellt haben, wenn es nicht funktioniert.
Referenz:
- Installieren Postfix (Sendmail-kompatibel).
- Bearbeiten
/etc/postfix/main.cf
zu lesen:
#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
- Erstellen
/etc/postfix/sasl_passwd
, geben Sie:
smtp.server.net username:password
-
Typ #
/usr/sbin/postmap sasl_passwd
-
Dann laufen:
service postfix reload
Jetzt mit dem sendmail -t -i
Mail wie gewohnt läuft Befehl PHP und Postfix wird es abzufangen und es zu einem SMTP-Server weiterleiten, die Sie zur Verfügung gestellt.
Verwenden Mail :: Fabrik in dem Mail-PEAR-Paket. Beispiel.
Diese Antworten sind veraltet und abgeschrieben. Best practice ..
composer require phpmailer/phpmailer
Der nächste auf Ihrer sendmail.php Datei benötigen nur die folgende
# 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";
}
Dies kann konfiguriert werden, wie immer Sie möchten ..
Unter Berücksichtigung einer Antwort in diese Frage In PHP 4 die PEAR-Mail-Paket ist typischerweise bereits installiert ist, und das ist wirklich einfaches Tutorial zeigt Ihnen die wenigen Zeilen Code, die Sie benötigen, um Ihre pHP-Datei http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm
- Installieren Sie die neueste hMailServer . "Run hMailServer Administrator" im letzten Schritt.
- Eine Verbindung mit "localhost".
- "Add Domain ..."
- Stellen Sie "127.0.0.1". als "Domain", klicken Sie auf "Speichern".
- "Einstellungen"> "Protokolle"> "SMTP"> "Lieferung von E-Mail"
- Stellen Sie "localhost" als "Local Hostname", Ihre Daten in der "SMTP Relayer" dieses Abschnitts , klicken Sie auf "Speichern".
- "Einstellungen"> "Erweitert"> "IP Bereiche"> "My Computer"
- Deaktivieren Sie die "External an externe E-Mail-Adressen" Checkbox in der "erfordern SMTP-Authentifizierung" Gruppe.
- Wenn Sie php.ini geändert haben, schreiben Sie diese 3 Werte:
"SMTP = localhost",
"smtp_port = 25",
"; sendmail_path =".
Credit: So konfigurieren WAMP (localhost) E-Mail mit Google Mail senden?