Aug
8
Unter Windows ist es kein Kinderspiel einen Mailserver aufzusetzen, welcher E-Mails versendet und die von großen E-Mail-Providern, wie zum Beispiel GMX oder WEB durchgelassen werden. Oft stimmen die Relay-Hosts nicht oder das Auflösen der privaten IP-Adresse schlägt fehl. Die IP-Adressen von privaten Internetanbindungen sind nicht in den WhiteLists der Anbieter eingetragen und so werden die versendeten E-Mails meist abgewiesen oder landen direkt im Spam-Ordner.
Für einen Webentwickler ist der E-Mailversand dennoch ein elementarer Bestandteil bei der Entwicklung von Internetauftritten. Beispielsweise werden E-Mails durch ein Kontaktformular versandt oder bei der Registrierung eines Benutzers, werden die Double-Opt-In E-Mails zur Aktivierung, etc. versandt. Wer die Softwarepakete "XAMPP" unter Windows nutzt, hat die Möglichkeit MercuryMail oder Sendmail zu konfigurieren. Bis allerdings MercuryMail eingerichtet ist, ist es oft schneller mit einem externen Dienstleister, wie beispielsweise All-Inkl.com, getan. Wer einen Shared-Server bei All-Inkl.com besitzt und eh ein Postfach dort eingerichtet hat, kann über das E-Mailpostfach kinderleicht E-Mails versenden. So wird PHP später über Sendmail und dem externen SMTP-Server die E-Mails an die entsprechenden Empfänger versenden und erfolgreich zugestellt, da der Relay-Host (Mailserver) korrekt aufgelöst werden kann und auch in den Whitelists der großen Provider steht.
Ein kleines HowTo zur Einrichtung von Sendmail gibt es hier.
Die Einrichtung von Sendmail basiert auf der XAMPP Version 1.7.3.
Bei den Pfaden gehen wir davon aus, dass XAMPP unter C:\xampp\ zur Verfügung steht.
Sendmail.ini: C:\xampp\sendmail\sendmail.ini
PHP.ini: C:\xampp\php\php.ini
Konfiguration der sendmail.ini für SMTP-Dienst für all-inkl.com
span style="color: #666666;">"C:\xampp\sendmail\sendmail.log" #allinkl # Set a default account
Konfiguration mit Hotmail:
span style="color: #666666;">"C:\xampp\sendmail\sendmail.log" # A freemail service example # Set a default account
Konfiguration mit GMX:
span style="color: #666666;">"C:\xampp\sendmail\sendmail.log" # A freemail service GMX account gmx tls on tls_certcheck off host smtp.gmx.net from exampleuser@gmx.de auth on user exampleuser@gmx.de password examplepassword # Set a default account
Des Weiteren müsst ihr in der php.ini die Zeilen mit "sendmail" anpassen und freischalten.
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
SMTP = localhost
smtp_port = 25
Sind alle Konfigurationen durchgeführt, vergesst euren Apache-Dienst nicht neuzustarten. Ohne Neustart werden die Änderungen nicht wirksam.
// Update:
Einrichtung von Sendmail mit Google-Mail-Account(sendmail.ini) unter XAMPP 1.8.0
#GMAIL mit XAMPP 1.8.0 und sendmail smtp_server=smtp.gmail.com smtp_port=587 error_logfile=error.log debug_logfile=debug.log auth_username=xxx.xxx@gmail.com auth_password=xxxxx ;force_sender=xxx.xxx@gmail.com smtp_ssl=tls tls_certcheck off
PHP 5.4.x (php.ini) in Verbindung mit sendmail
[mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury ; SMTP = localhost ; smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = xxx.xxx@gmail.com ; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program files\xampp) fakemail and mailtodisk do not work correctly. ; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path. ; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder) sendmail_path = "C:\"\xampp\sendmail\sendmail.exe\" -t" ; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the \xampp\mailoutput folder ;sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe" ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = Off ; Log all mail() calls including the full path of the script, line #, to address and headers mail.log = "C:\xampp\php\logs\php_mail.log"
das funktioniert so wie es soll.
mail() geht so ohne probleme und mail kommen auch an!
super anleitung, danke, daumen hoch.
Vielen Dank für die Anleitung, sie hat mir sehr geholfen. Ich habe die GMX-Konfiguration getestet mit meinem GMX-Account:
Wenn ich die sendmail.ini nach obigem Muster erstelle, meldet mail() Erfolg, es kommt aber keine Mail an.
Wenn ich die Daten aus obigem Muster (ohne die tls-Zeilen) in die bei sendmail mitgelieferte sendmail.ini einsetze, funktioniert alles. Ich bin happy.
Mich verwirren aber die unterschiedlichen Schlüsselwörter (z.B. user versus auth_username) und die unterschiedliche Syntax (z.B. einmal ohne und einmal mit = zwischen Name und Wert), oder war das gar nicht so gedacht, die obigen Muster direkt als sendmail.ini zu verwenden? Bei mir läuft XAMPP 1.7.4.
Viele Grüße, rs
Super Anleitung, hat bei mir mit 1.7.x auf Anhieb funktioniert, nach dem Update auf 1.8.0 und nochmals der Hilfe von Jörg hat es dann auch geklappt 🙂
Zur Abwechslung hier mal ein Hotmail-Beispiel für 1.8.0 (in die Sendmail.ini eintragen):
[CODE]
[sendmail]
; HOTMAIL
smtp_server=smtp.live.com
smtp_port=25
smtp_ssl=tls
tls_certcheck off
error_logfile=error.log
debug_logfile=debug.log
auth_username= deinname@hotmail.de
auth_password=*******
[/CODE]
Super Anleitung. Danke
Als Erweiterung der Sammlung getestet mit XAMPP 1.8.0 (apache 2.4, php 5.4.4)
Datei sendmail. ini
[sendmail]
#1&1 mit E-Mail-Konto „xxx@onlinehome.de“
#funktioniert sicher identisch bei „xxx@online.de“ oder „xxx@domainname.com“
smtp_server=smtp.1und1.de
smtp_port=25
smtp_ssl=tls
tls_certcheck off
error_logfile=error.log
debug_logfile=debug.log
auth_username=xxx@onlinehome.de
auth_password=******
pop3_server=pop.1und1.de
pop3_username=xxx@onlinehome.de
pop3_password=******
Datei php.ini, wie im Artikel unter
// Update:
Einrichtung von Sendmail mit Google-Mail-Account(sendmail.ini) unter XAMPP 1.8.0
Noch als zusätzlicher Hinweis: Die php.ini liegt bei XAMPP 1.8 bei mir im Pfad xamp/php
Hallo, ich habe auch ein Problem mit der Sentmail, ich bin noch Schüler, daher nicht so gut darim.
Ich nutze Xampp über einen USB stick (XAMPP Control Panel v.3.1.0 BEta 4)
Ich würde eine otmail adresse nutzen, muss ich einfach den oben genannten Text (abändern und dann) in die sendmail.ini einfügen ?
war es das, oder kommt da noch mehr zu ?
Hallo,
erst mal großen Dank für die Anleitung. Allerdings will es bei mir leider nicht klappen. Ich versuche mir den Mail-Versand für ein Formular einzurichten und bekomme eine Erfolgsmeldung, aber bei GMX kommt nichts an.
In der php.ini ist bei [mail function] alles folgende aktiv:
SMTP = localhost
smtp_port = 25
sendmail_from = no-reply@domain.de
sendmail_path = „\“C:\xampp\sendmail\sendmail.exe\“ -t“
sendmail.ini:
defaults
logfile „C:\xampp\sendmail\sendmail.log“
account gmx
tls on
tls_certcheck off
host smtp.gmx.net
from MEINNAME@gmx.net
auth on
user MEINNAME@gmx.net
password (enthält große und kleine Buchstaben sowie „= & .“)
account default : gmx
Der Anfang des Formmailers sieht so aus:
$mailTo = ‚MEINNAME@gmx.net‘;
$mailFrom = ‚“FormMailer“ ‚;
$mailSubject = ‚meine Formulardaten‘;
$returnPage = ‚Formular-verarbeitet.html‘;
$returnErrorPage = ‚Fehler-aufgetreten.html‘;
$mailText = „“;
Hoffe du kannst helfen!!!
Grüße, Johannes