elxarius
Goto Top

XAMPP - Versenden von E-Mails via PHP über googlemail (php.ini und sendmail.ini edit)

Dies ist das erste Mal, dass ich ein Tutorial verfasse weil ich tagelang nach einer anständigen Lösung zu meinem Problem via XAMPP E-Mails zu versenden gesucht habe und nun hoffe dass ich Einigen mit meinem Lösungsvorschlag helfen kann.
Ich selber habe zwar mehrere (meist englische) Anleitungen im Netz gefunden, diese haben aber alle nicht bei mir funktioniert.
Die getätigten Einstellungen wurden auf folgenden OS getestet: XP, Win Server 2008 R2, Windows 7)

Nach der installation von XAMPP mit Apache und MySQL als Dienst öffnen wir zunächst die php.ini unter C:\XAMPP\PHP (ggf. Installationspfad überprüfen)
Dann sucht nach "smtp" und ändert folgende Parameter:

 
[mail function]
; For Win32 only.
; http://php.net/smtp         
;SMTP = localhost             // Semikolon zum auskommentieren setzen
; http://php.net/smtp-port
;smtp_port = 25                 // Semikolon zum auskommentieren setzen


; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"            ## --> zum aktivieren Semikolon entfernen (ggf. an Installationspfad anpassen)
Den Rest der PHP.ini belassen wir, wie er ist und speichern die Datei ab.

Nun schauen wir unter C:\XAMPP\Sendmail nach der readme.html und laden dort die aktuelle sendmail.zip herunter. Wir ersetzen alle vorhandenen Files des Senmail-Ordners mit den soeben heruntergeladenen. dann öffnen wir die Sendmail.ini. Im Falle eines googlemail-Accounts sieht das ganze dann folgendermassen aus:

; configuration for fake sendmail

; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=smtp.gmail.com

; smtp port (normally 25)

smtp_port=25

;SMTPS (SSL) support
   auto = use SSL for port 465, otherwise try to use TLS
   ssl  = alway use SSL
   tls  = always use TLS
   none = never try to use SSL

smtp_ssl=auto

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify

default_domain=gmail.com

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

error_logfile=error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

;debug_logfile=debug.log

; if your smtp server requires authentication, modify the following two lines

auth_username=ACCOUNTNAME@gmail.com
auth_password=PASSWORT

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines.  do not enable unless it is required.

pop3_server=
pop3_username=
pop3_password=

; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify 
; the "From: " header of the message content

force_sender=ACCOUNTNAME@gmail.com

; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify 
; the "To: " header of the message content

force_recipient=

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

hostname=

Wir speichern ab und vergessen NICHT den Apachen neu zu starten!

Wichtig ist noch, dass die ausgehenden Ports 25 und 465 geöffnet sind.

Zum testen, hier ein Script von IT-Runde.de. (Das PHP-Script, dass ich verwende gehört zu einem kommerziellen Programm, deswegen möchte ich es hier nicht posten):

Nun können wir endlich via PHP von Xampp aus unsere erste E-Mail versenden, dazu habe ich hier ein kleines Script, welches ihr einfach in eine Datei mit der Endung .php im Ordner „\xampp\htdocs“ speichern müsst.
<?php
$subject = "Unsere erste E-Mail";
$to = "Empfänger E-Mail-Adresse";
$body = "Das ist Unsere erste E-Mail welche mir mit Xampp versendet haben";

if( mail($to, $subject, $body) ) {
echo "E-Mail ist versendet worden";
} else {
echo "E-Mail konnte nicht versendet werden";
}
?>
Nun könnt ihr die Datei mit der Adresse http://localhost/DieDateiMitEuremDateiname.php in eurem Browser aufrufen, und sehen ob ihr alles richtig eingerichtet habt.

So ich hoffe, dass ich jemanden mit dem kleinen TUT helfen konnte, und dass ihr nun auch fleßig E-Mails versenden könnt.

Content-ID: 169768

Url: https://administrator.de/contentid/169768

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

Arano
Arano 14.07.2011 um 21:03:10 Uhr
Goto Top
Hallo

Hm, die beiden Ports: 25 und 465, sind das nicht die Ports des SERVERS !?
DEIN PC -> Zufalls Port -> Internet -> 25/465 ->SERVER
Also ausgehende Verbindungen auf den Zielport 25/465 dürfen nicht blockiert sein.

Ihr dürft nicht vergessen, das jeder der auf die Seite kommt, so über euren E-Mail-Accounr beliebig viele E-Mails versenden kann !


~Arano
eLxarius
eLxarius 15.07.2011 um 16:18:40 Uhr
Goto Top
Zitat von @Arano:
Hm, die beiden Ports: 25 und 465, sind das nicht die Ports des SERVERS !?
DEIN PC -> Zufalls Port -> Internet -> 25/465 ->SERVER
Also ausgehende Verbindungen auf den Zielport 25/465 dürfen nicht blockiert sein.> ~Arano

So war das gemeint. face-smile Sollte selbsterklärend sein...
Dani
Dani 15.07.2011 um 17:07:14 Uhr
Goto Top
Hallo eLxarius,
vielen Dank für die ausführliche Anleitung.
Bitte benutze die Formatierungshilfen (z.B. Code-Block) um die Anleitung übersichtlicher zu gestalten.


Grüße,
Dani
EvilMoe
EvilMoe 17.07.2011 um 17:12:24 Uhr
Goto Top
Sehr schön, ich danke dir face-smile

Endlich wurde mir die Arbeit mal abgenommen selber zu gucken wie das geht^^
bugmenot2
bugmenot2 22.07.2011 um 12:26:31 Uhr
Goto Top
Danke für dein tolles Tutorial!
Bin selbst schon auf der Suche gewesen, leider bisher ohne großem Erfolg, bis jetzt!!
Funktioniert einwandfrei (bis auf dem SpamFilter des Empfängers ;) )
DanielLeib
DanielLeib 22.08.2011 um 14:47:20 Uhr
Goto Top
Genau danach habe ich heute noch gesucht!
Ich hab es noch nicht getestet aber...
BESTEN DANK!!!
DanielLeib
DanielLeib 22.08.2011 um 15:42:07 Uhr
Goto Top
Zitat von @DanielLeib:
Genau danach habe ich heute noch gesucht!
Ich hab es noch nicht getestet aber...
BESTEN DANK!!!

klappt! ...bei meiner privaten Mailadresse.
Durch den Unternehmensspamfilter kommt die mail leider nicht.
Kann ich ggf. einen Absander eintragen? Dies wird überprüft.