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= ).

War es hilfreich?

Lösung

PHP mail() Befehl unterstützt keine Authentifizierung. Ihre Optionen:

  1. PHPMailer - Tutorial
  2. PEAR - Tutorial
  3. 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.

  1. Erstellen Sie einen Ordner mit dem Namen sendmail in C:\wamp\.
  2. Extrahieren Sie diese 4-Dateien in sendmail Ordner. sendmail.exe, libeay32.dll, ssleay32.dll und sendmail.ini
  3. Dann konfigurieren C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. Die oben arbeitet gegen ein Google Mail-Konto. Und dann php.ini konfigurieren:

      

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

  2. 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.

  1. Installieren Postfix (Sendmail-kompatibel).
  2. 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
  1. Erstellen /etc/postfix/sasl_passwd, geben Sie:
smtp.server.net username:password
  1. Typ # /usr/sbin/postmap sasl_passwd

  2. 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

  1. Installieren Sie die neueste hMailServer . "Run hMailServer Administrator" im letzten Schritt.
  2. Eine Verbindung mit "localhost".
  3. "Add Domain ..."
  4. Stellen Sie "127.0.0.1". als "Domain", klicken Sie auf "Speichern".
  5. "Einstellungen"> "Protokolle"> "SMTP"> "Lieferung von E-Mail"
  6. Stellen Sie "localhost" als "Local Hostname", Ihre Daten in der "SMTP Relayer" dieses Abschnitts , klicken Sie auf "Speichern".
  7. "Einstellungen"> "Erweitert"> "IP Bereiche"> "My Computer"
  8. Deaktivieren Sie die "External an externe E-Mail-Adressen" Checkbox in der "erfordern SMTP-Authentifizierung" Gruppe.
  9. 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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top