it-swarm.com.de

Wie zu konfigurieren PHP E-Mail senden

Ich muss eine E-Mail mit PHP-Skript an die Benutzer meiner Website senden. Ich habe versucht, die Mail-Funktion in PHP zu verwenden.
Mein Code lautet wie folgt:

  $to = "[email protected]";
  $subject = "Test mail";
  $message = "My message";
  $from = "[email protected]";
  $headers = "From:" . $from;
  mail($to,$subject,$message,$headers);

Wenn ich versuche, das Programm auszuführen, bekomme ich Folgendes:

 Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set().

Bitte sagen Sie mir, welche Adresse in der $ from-Variablen enthalten sein soll. Benötige ich dafür einen SMTP-Server? Wie versende ich Mails mit einem localhost? Bitte sagen Sie mir, was genau in der php.ini-Datei bearbeitet werden soll

Ich bin neu bei all dem .. Bitte helfen Sie mir ..

5
abcdefgh

Verwenden Sie stattdessen PHPMailer: https://github.com/PHPMailer/PHPMailer

Wie man es benutzt:

require('./PHPMailer/class.phpmailer.php');
$mail=new PHPMailer();
$mail->CharSet = 'UTF-8';

$body = 'This is the message';

$mail->IsSMTP();
$mail->Host       = 'smtp.gmail.com';

$mail->SMTPSecure = 'tls';
$mail->Port       = 587;
$mail->SMTPDebug  = 1;
$mail->SMTPAuth   = true;

$mail->Username   = '[email protected]';
$mail->Password   = '[email protected]#';

$mail->SetFrom('[email protected]', $name);
$mail->AddReplyTo('[email protected]','no-reply');
$mail->Subject    = 'subject';
$mail->MsgHTML($body);

$mail->AddAddress('[email protected]', 'title1');
$mail->AddAddress('[email protected]', 'title2'); /* ... */

$mail->AddAttachment($fileName);
$mail->send();
4
pooria

Sie müssen auf Ihrem lokalen Computer einen SMTP-Dienst einrichten, um E-Mails senden zu können. Es gibt viele frei verfügbare Suche nur bei Google. 

Wenn Sie einen Server oder ein VPS besitzen, laden Sie das Skript hoch und es funktioniert einwandfrei. 

2
user2541120

Normalerweise ist ein guter Ausgangspunkt, wenn Sie auf Probleme stoßen, das Handbuch . Die Seite unter E-Mail konfigurieren erklärt, dass der Mail-Befehl PHP unter MSWindows und auf jedem anderen Betriebssystem sehr unterschiedlich ist. Es ist eine gute Idee, wenn Sie eine Frage posten, um relevante Informationen zur Konfiguration dieses Teils Ihres Systems und für das Betriebssystem anzugeben.

Ihr PHP ist so konfiguriert, dass es mit einem SMTP-Server kommuniziert. Dies ist die Standardeinstellung für einen MSWindows-Computer. Sie haben jedoch keinen MTA installiert oder blockieren Verbindungen. Während für eine kommerzielle Website, die Ihr eigenes MTA auf robuste Weise ausführt, eine ziemlich hohe Rolle in der Liste der zu erledigenden Aufgaben spielt, ist dies keine unbedeutende Übung - Sie müssen wirklich wissen, was Sie tun, um eine sichere Konfiguration zu gewährleisten. In Ihrem Fall wäre es viel sinnvoller, einen von einem anderen Benutzer konfigurierten und verwalteten Dienst zu verwenden.

Da Sie über eine Google Mail-Adresse eine Verbindung zu einem Remote-MTA herstellen, sollten Sie wahrscheinlich den Server von Google Mail verwenden. Sie benötigen SMTP-Authentifizierung und wahrscheinlich SSL-Unterstützung. Beide werden von der Funktion mail () in PHP nicht unterstützt. Es gibt hier ein einfaches Beispiel mit swiftmailer mit gmail oder hier ein Beispiel mit phpmailer

1
symcbean

Sie können keine Nachrichten über andere Mailserver versenden. Erkundigen Sie sich bei Ihrem Host-Anbieter, wie Sie E-Mails senden. Versuchen Sie, eine E-Mail von Ihrem Server ohne PHP zu senden. Sie können jeden E-Mail-Client wie Outook verwenden. Versuchen Sie gleich danach, PHP.ini mit Ihrer E-Mail-Client-SMTP-Konfiguration (E-Mail senden) zu konfigurieren.

1
neves

Um dies zu beheben, müssen Sie Ihre PHP.INI und die auf Ihrem Server installierten E-Mail-Dienste überprüfen.

Aber mein bester Rat für Sie ist, die Funktion mail() zu vergessen. Es hängt von den PHP.INI-Einstellungen ab, die Konfiguration ist je nach Plattform (Linux oder Windows) unterschiedlich, und kann die SMTP-Authentifizierung nicht verarbeiten, was in den heutigen Tagen ein großes Problem ist. Zu viel Kopfschmerzen.

Verwenden Sie stattdessen "PHP Mailer" ( http://phpmailer.worxware.com ), es ist eine PHP Klasse, die kostenlos verfügbar ist, und kann fast jeden SMTP-Server, intern oder extern, verarbeiten Ohne Authentifizierung funktioniert es unter Linux und Windows genauso, und es hängt nicht von den PHP.INI-Einstellungen ab. Es gibt viele Beispiele, es ist sehr leistungsfähig und einfach zu bedienen.

0
Marcovecchio

konfigurieren Sie Ihre php.ini wie folgt `SMTP = smtp.gmail.com

[mail function]

; XAMPP: Kommentieren Sie dies aus, wenn Sie mit einem SMTP-Server wie Mercury arbeiten möchten

; SMTP = smtp.gmail.com

; smtp_port = 465

; Nur für Win32 .; http://php.net/sendmail-from ; sendmail_from = postmaster @ localhost

0
achref akrouti