2017-10-29 5 views
0

Ich entwickle auf einem Mac und ich benutze mamp pro mit phpmailer, um einige PHP-E-Mail-Code zu testen. Ich konnte erfolgreich E-Mails mit meinem persönlichen Google Mail senden und empfangen. Jetzt möchte ich sehen, wie ich eine E-Mail senden würde, wenn der E-Mail-Benutzername nicht Standard ist, dh @ corporateemail.com oder @ mybusiness.com, aber ich kann nicht herausfinden, wie mamp pro und phpmailer konfiguriert werden, um die E-Mail zu versenden von localhost über die 'non standard' E-Mail wie in den obigen Beispielen. Hier ist mein phpmailer config codePHPMailer mit mamp pro auf localhost

$mail->Host = 'localhost'; 
$mail->SMTPAuth = true; 
$mail->isSMTP(); 
$mail->SMTPDebug = 4; 
$mail->Port = 25; 
$mail->SMTPSecure = 'ssl'; 
$mail->isHtml(true); 
$mail->setFrom('[email protected]', $name); 
$mail->addReplyTo($replyto, '[email protected]'); 
$mail->addAddress("[email protected]"); 
$mail->Subject = $subject; 
$mail->msgHtml($html); 
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 

Meine PHP-Version in Mamp Pro ist 5.6.31. In meiner php.ini habe ich

SMTP = localhost 
smtp_port = 25 

In MAMP Pro meine Ports sind:

Apache-> port: 3005; ssl port: 25(it was 257 by default) 

Im Postfix Registerkarte Mamp Pro Ich habe 'Domain der ausgehenden E-Mails Set: example.com' und die Option "Smart-Host für Routing verwenden" ist deaktiviert.

Schließlich mein phpmailer Fehlerausgang ist wie folgt

2017-10-29 23:00:29 Connection: opening to ssl://localhost:25, timeout=300, options=array() 
2017-10-29 23:00:29 Connection failed. Error #2: stream_socket_client(): unable to connect to ssl://localhost:25 (Connection refused) 
2017-10-29 23:00:29 SMTP ERROR: Failed to connect to server: Connection refused (61) 
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 

So zu wiederholen. Ich möchte eine E-Mail versenden, die Google Mail nicht verwendet, aber ich kann anscheinend nicht in der Lage sein, phpmailer korrekt zu konfigurieren, während ich auf localhost bin. Was mache ich falsch oder fehlt? Vielen Dank!

Antwort

0

SMTPSecure = 'ssl' ist fast garantiert nicht auf Port 25 zu arbeiten - aber warum in aller Welt haben Sie Apache hören auf Port 25? Das ist der postfix Job

Sie Einstellung SMTPAuth, aber dann nicht Username oder Password Einstellung - aber Sie brauchen nicht Auth für localhost Lieferung, so dass nur deaktivieren.

Wenn Sie über localhost weiterleiten, benötigen Sie keine Verschlüsselung (es gibt kein zu schützendes Netzwerksegment), und es wird sowieso nicht funktionieren, weil Sie kein Zertifikat haben, das mit dem Namen übereinstimmt.

Zum größten Teil alles, was Sie tun müssen, um localhost über SMTP mit PHPMailer zu senden, ist Anruf isSMTP(), und die Standardeinstellungen für die anderen Eigenschaften sollten gut funktionieren.

Wenn Sie an einem neuen Projekt arbeiten, verwenden Sie keine veraltete Version von PHP - verwenden Sie mindestens 7.0.

Ich denke, Sie müssen einen Schritt zurück und definieren genau das, was Sie versuchen zu tun - Ihre aktuelle Konfiguration macht sehr wenig Sinn.

+0

Danke, ich bin neu bei phpmailer und war mir nicht sicher was die beste config war (für localhost), also die Frage. Ich werde die Version auch auf 7 erhöhen. Also, wenn ich deine Antwort richtig verstanden habe, war es ein wenig unklar, wie ich meine Konfiguration reparieren kann. Ich muss entfernen $ mail-> SMTPAuth = true; $ mail-> Port = 25 (oder ändern Sie es zu 257) Dann in meiner MAMP PRO Postfi Config sollte ich Apache auf 257 (Standard) für ssl hören? – engineerKev

+0

Diese Port-Nummern sind ungewöhnlich - ich würde empfehlen, mit den Standardeinstellungen zu gehen, wo es möglich ist, nicht von Standard-Ports zu wechseln, es sei denn, Sie müssen dies ausdrücklich tun. Normalerweise würde Apache auf Port 80 und 443 hören, Postfix auf 25, 465 und 587 – Synchro