eMails mit XAMPP über Freemailer verschicken
Donnerstag, 09. Juli 2009 20:16
Im Folgenden beschreibe ich, wie man ein unter Windows mit XAMPP installiertes PHP dazu bringt, eMails über Freemailer (z.B. GMX) zu verschicken. Nach der Installation ist es ohne weiteres möglich, eMails über die PHP-Funtion mail() zu versenden.
Dazu benötigt wird
das XAMPP Paket inkl. MercuryMail und
einen Mail-Account bei einem Freemailer
Auf die Installation von XAMPP werde ich nict weiter eingehen, es sind im Grunde genommen ja auch nur ein paar Klicks
Zu konfigurieren ist die php.ini und Mercury.
Dort sucht man nach dem Eintrag [mail function]. Von Interesse sind die 3 Einträge SMTP, smtp_port und sendmail_from - um sie zu aktivieren, müssen die Semikola entfernt werden.
SMTP: ist der Mailserver auf dem gleichen Rechner zu suchen, wird hier localhost eingetragen, sonst die IP-Adresse.
(Man könnte auf den Gedanken kommen, hier schon den SMTP-Server des Freemailers einzutragen - dieser nimmt aber keine Mails ohne Zugangsdaten an, daher muss ein eigener Mailserver her)
smtp_port: der Standard-Port für unseren SMTP-Server ist 25.
sendmail_from: hier muss Eure eMail-Adresse beim Freemailer angegeben werden, da PHP diese bei der erzeugten Mail als Absender verwendet.
Nach einem Apache-Neustart ist die Konfiguration aktiv und wir können uns dem Mailserver Mercury widmen.
Beim ersten Start zeigt Mercury unter Configuration die Module MercuryS SMTP Server und MercuryE SMTP Client an. Benötigt wird hier allerdings der MercuryC SMTP Relay Client, der unter Protocol Modules ausgewählt werden muss. Hiernach ist ein Neustart nötig.
Folgende Mercury-Module sollten nun zur Auswahl stehen:
MercuryS SMTP Server: zum Entgegennehmen der Mails aus PHP
MercuryC SMTP Relay Client: zum Weiterleiten der Mails an den Freemailer
Mit Klick auf Configuration->MercuryS SMTP Server wird der Server konfiguriert:
Unter General legen wir den Namen und den Port 25 fest.
Unter Connection Control klickt man auf 'Add restriction', gibt dann unter 'IP-Address range from' die eigene IP 127.0.0.1 an, wählt 'Allow connentions' und markiert 'Connections from this address range may relay mail through this server'.
Nach Klick auf OK sollte man noch sicherstellen, dass die beiden Checkboxen bei 'Do not permit SMTP relaying of non-local mail' und 'Use strict local relaying restrictions' angewählt sind.
Nach Klick auf OK konfigurieren wir über Configuration->MercuryC SMTP Relay Client den Relay Client:
Hier wird nun der Versand über den Freemailer initiiert. Dazu müssen die folgenden Zugangsdaten eingetragen werden: Servername, Login und Passwort.
Mails, die von nun an über PHP verschickt werden, werden vom SMTP-Server entgegengenommen, über den Client an den Freemailer weitergereicht.
Viel Spaß
Dazu benötigt wird
das XAMPP Paket inkl. MercuryMail und
einen Mail-Account bei einem Freemailer
Auf die Installation von XAMPP werde ich nict weiter eingehen, es sind im Grunde genommen ja auch nur ein paar Klicks
Zu konfigurieren ist die php.ini und Mercury.
1. Konfiguration php.ini
Mit einem einfachen Texteditor kann man die php.ini öffnen. Standardmäßig liegt sie unter C:\xampp\apache\bin.Dort sucht man nach dem Eintrag [mail function]. Von Interesse sind die 3 Einträge SMTP, smtp_port und sendmail_from - um sie zu aktivieren, müssen die Semikola entfernt werden.
SMTP: ist der Mailserver auf dem gleichen Rechner zu suchen, wird hier localhost eingetragen, sonst die IP-Adresse.
(Man könnte auf den Gedanken kommen, hier schon den SMTP-Server des Freemailers einzutragen - dieser nimmt aber keine Mails ohne Zugangsdaten an, daher muss ein eigener Mailserver her)
smtp_port: der Standard-Port für unseren SMTP-Server ist 25.
sendmail_from: hier muss Eure eMail-Adresse beim Freemailer angegeben werden, da PHP diese bei der erzeugten Mail als Absender verwendet.
Nach einem Apache-Neustart ist die Konfiguration aktiv und wir können uns dem Mailserver Mercury widmen.
2. Konfiguration Mercury
Meckert die Firewall beim ersten Start der mercury.exe, die standardmäßig unter c:\xampp\MercuryMail liegt, sollte man auf zulassen/nicht mehr blocken o.ä. klicken - je nach verwendeter Firewall kann es sein, dass man dies manuell einstellen muss.Beim ersten Start zeigt Mercury unter Configuration die Module MercuryS SMTP Server und MercuryE SMTP Client an. Benötigt wird hier allerdings der MercuryC SMTP Relay Client, der unter Protocol Modules ausgewählt werden muss. Hiernach ist ein Neustart nötig.
Folgende Mercury-Module sollten nun zur Auswahl stehen:
MercuryS SMTP Server: zum Entgegennehmen der Mails aus PHP
MercuryC SMTP Relay Client: zum Weiterleiten der Mails an den Freemailer
Mit Klick auf Configuration->MercuryS SMTP Server wird der Server konfiguriert:
Unter General legen wir den Namen und den Port 25 fest.
Unter Connection Control klickt man auf 'Add restriction', gibt dann unter 'IP-Address range from' die eigene IP 127.0.0.1 an, wählt 'Allow connentions' und markiert 'Connections from this address range may relay mail through this server'.
Nach Klick auf OK sollte man noch sicherstellen, dass die beiden Checkboxen bei 'Do not permit SMTP relaying of non-local mail' und 'Use strict local relaying restrictions' angewählt sind.
Nach Klick auf OK konfigurieren wir über Configuration->MercuryC SMTP Relay Client den Relay Client:
Hier wird nun der Versand über den Freemailer initiiert. Dazu müssen die folgenden Zugangsdaten eingetragen werden: Servername, Login und Passwort.
Mails, die von nun an über PHP verschickt werden, werden vom SMTP-Server entgegengenommen, über den Client an den Freemailer weitergereicht.
Viel Spaß
Signatur:\\\"I have not failed. I\\\'ve just found 10,000 ways that won\\\'t work.\\\" - Thomas Alva Edison (1847-1931)