it-swarm.com.de

XAMPP Sendmail mit Google Mail-Konto

Ich versuche, Sendmail über XAMPP für das Senden von E-Mails zu konfigurieren. In meiner sendmail.ini habe ich folgende Einstellungen:

# Set default values for all following accounts.

logfile "C:\xampp\sendmail\sendmail.log
account Gmail
tls on
port 587
tls_certcheck off
Host smtp.gmail.com
from [email protected]
auth on
user [email protected]
password mypassword

account default : Gmail

Ich habe ein Testskript wie folgt erstellt:

$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$headers = "From: [email protected]" . "\r\n";
if (mail($to, $subject, $body, $headers)) {
    echo ("Message successfully sent!");
} else {
    echo ("Message delivery failed...");
}

Ich erhalte eine Nachricht, die besagt, dass die E-Mail gesendet wurde, aber nie ankommt. In den Protokollen erhalte ich Folgendes:

sendmail: Fehler bei der Lieferung: Zuerst muss ein STARTTLS-Befehl ausgegeben werden.

Weiß jemand, worum es hier gehen könnte?

Danke im Voraus!

Gaz

18
Gaz

Das hat bei mir funktioniert. Hoffentlich wird niemand anderes Öl verbrennen, um das herauszufinden, so wie ich.

Hier ist meine sendmail.ini 

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=yourgmailpassword
[email protected]

php/php.ini ---- Kommentieren Sie im Grunde alles außer sendmail_path & mail.add_x_header

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

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]

; 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"

; 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\Apache\logs\php_mail.log"

Dies funktionierte für mich, nachdem ich die sendmail-Dateien aktualisiert hatte (die alten unterstützen kein smtp)

  • gehen Sie zu http://glob.com.au/sendmail/ und holen Sie sich die neueste sendmail-Zip-Datei
  • entpacken Sie sie auf den Desktop und kopieren Sie die Dateien in Ihren Ordner\xampp\sendmail. Ersetzen Sie alles, was dort war. ALLES! 
  • Öffne jetzt sendmail.ini und kopiere, was ich oben gezeigt habe (entferne zuerst alles in dieser Datei oder kommentiere einfach alles aus!)
  • HINWEIS: Sie benötigen dafür keine Mercury-Server.

Als ich auf dieses Problem stieß, machte ich einen Passwort-Wiederherstellungs-PHP auf localhost. Ich musste den Benutzern ihr Passwort senden. - Ihr PHP sieht ok aus

35
braviato

Okay, heute hat die beste Antwort für mich nicht funktioniert. Aber das tat:

in sendmail.ini:

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=****@gmail.com
auth_password=*******
force_sender=****@gmail.com

in php.ini:

[mail function]
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

Basierend auf Port @: http://support.google.com/mail/bin/answer.py?hl=de&answer=13287

13
aubreypwd

Alles, was ich tun musste, war, die Option "Weniger sicheren Apps für den Zugriff auf Ihr Konto zulassen" zu aktivieren. Ich denke, dies ist eine Alternative zum Erstellen eines app-spezifischen Passworts.

https://support.google.com/accounts/answer/6010255 für Informationen

https://www.google.com/settings/security/lesssecureapps für den Switch

Es könnte sich lohnen, das Gerät wieder abzuschalten, wenn Sie aus Sicherheitsgründen fertig sind. 

3
Dean_Wilson

Nur um die bereits großartigen Antworten hinzuzufügen. Stellen Sie sicher, dass Sie XAMPP als Administrator ausführen. Das hat es für mich behoben. 

1
Julian

Dies sind die neuesten Google SMTP-Serveranforderungen:

  1. Google Mail-SMTP-Serveradresse: smtp.gmail.com
  2. Google Mail-SMTP-Passwort: (Ihr Google Mail-Passwort)
  3. Google Mail-SMTP-Port (TLS): 587
  4. Google Mail-SMTP-Port (SSL): 465
  5. Google Mail SMTP TLS/SSL erforderlich: Ja

Google SMTP-Anforderungen

Wenn Sie nur SSL verwenden, wird es mit dem erforderlichen Captcha-Verifizierungstest kompliziert. Deshalb setze ich mein SSL auf "Automatisch", wodurch TLS bei SSL-Fehlern getestet wird.
 enter image description here

1
Ryan Santos

a) Ändern Sie php.ini Suchen Sie php.ini im Dateipfad "[Laufwerkbuchstabe]: [XAMPP-Verzeichnis] ​​\ php". z.B. C:\xampp\php\php.ini

Suchen Sie nach sendmail_path in Ihrer php.ini-Datei und entfernen Sie das Semikolon „;“, bevor [mein Pfad nicht vorhanden ist].

[mail function]
; For Win32 only.

SMTP = smtp.gmail.com

smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [your_gmail_username]@gmail.com
sendmail_path = "\"C:\xampplite\sendmail\sendmail.exe\" -t"

b) Ändern Sie sendmail.ini Suchen Sie sendmail.ini im Dateipfad nach "[Laufwerkbuchstabe]: [XAMPP-Verzeichnis] ​​\ sendmail", z. C:\xampp\sendmail\sendmail.ini

Kommentieren Sie den Inhalt von "Mercury" und "Ein Beispiel für einen kostenlosen E-Mail-Service" als

 # Mercury  <br/> 
 #account Mercury  <br/> 
 #Host localhost  <br/> 
 #from [email protected]  <br/> 
 #auth off  <br/> 
 # A freemail service example  <br/> 
 #account Hotmail  <br/> 
 #tls on  <br/> 
 #tls_certcheck off  <br/> 
 #Host smtp.live .com  <br/> 
 #from [exampleuser]@hotmail.com  <br/> 
 #auth on  <br/> 
 #user [exampleuser]@hotmail .com  <br/> 
 #password [examplepassword]  <br/> 

c. Fügen Sie das Google Mail-Konto hinzu.

Beispiel:

account Gmail
tls on 
tls_certcheck off
Host smtp.gmail.com 
 from [your_gmail_username]@gmail.com 
auth on
  account default : Gmail 

d. Starten Sie Apache Server neu


Ich habe kein Gmail verwendet. Ich habe mein Hosting-Konto verwendet. Stellen Sie in diesem Fall sicher, dass die SMTP-Einstellungen korrekt sind. Meines war mail.abc.com nicht smtp.gmail.com. Dieser Code stammt von 2 Websites. Sie müssen beide Dateien ändern. Ich habe es auf Xampp 1.73, das auf einer win200sp4-Box läuft. Alle Standardeinstellungen außer diesen beiden Dateien. php.ini und sendmail.ini 

0
Joe

Bei der Verwendung von Google Mail tritt ein anderes Problem auf. Google Mail verfügt jetzt über Sicherheit, sodass Sie ein anwendungsspezifisches Passwort generieren müssen. Sie können das Passwort, das Sie für Ihren normalen Google Mail-Zugriff verwenden, nicht verwenden. Ich entdeckte dies, indem ich die obigen Beispiele ausprobierte und dann bemerkte, dass im sendmail-Ordner ein Fehlerprotokoll erstellt wurde. Im Fehlerprotokoll stieß ich auf eine Nachricht, die dies angibt. 

0
user2554122
THIS IS WHAT YOU SENDMAIL SHOULD LOOK LIKE


[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=465

; SMTPS (SSL) support
;   auto = use SSL for port 465, otherwise try to use TLS
;   ssl = always 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=mydomain.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=Your Email Here
auth_password=Your Password Here

; 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=Your Email Here

; 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=smtp.gmail.com

THIS IS WHAT YOU PHP.INI FILE SHOULD LOOK LIKE

[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
smtp_server=smtp.gmail.com
smtp_port = 465

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\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 C:\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
0
Khalid

Ich weiß, dass dies ein altes Posten ist, aber ich dachte nur, ich würde die Tatsache teilen, dass das Folgende für mich funktionierte.

Ich verwende derzeit einen WAMP-Server unter Windows 7 ENT mit Apache/2.4.9 (Win64) PHP/5.5.12 und MySQL 5.6.17.

Ich folgte diesem Tutorial: http://blog.techwheels.net/send-email-from-localhost-wamp-server-using-sendmail/

0
Bri