it-swarm-tr.com

Gmail hesabını kullanarak XAMPP Sendmail

Sendmail'i e-posta göndermek için XAMPP ile yapılandırmaya çalışıyorum. Sendmail.ini adresimde şu ayarlara sahibim:

# 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

Bunun gibi bir test komut dosyası oluşturdum:

$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...");
}

E-postanın gönderildiğini belirten bir ileti alıyorum ancak hiçbir zaman gelmiyor ve günlüklerde görüyorum:

sendmail: Teslimat sırasındaki hata: Önce bir STARTTLS komutu verilmelidir.

Sorunun burada ne olacağını bilen var mı?

Şimdiden teşekkürler!

Gaz

18
Gaz

Benim için işe yarayan şey buydu Umarım benim yaptığım gibi çözmek için başka hiç kimse petrol yakmaz.

İşte benim 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 ---- sendmail_path & mail.add_x_header hariç her şeyi temelde yorumlar

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

Sendmail dosyalarını güncelledikten sonra bu işe yaradı (eskileri smtp'yi desteklemiyor)

  • http://glob.com.au/sendmail/ adresine gidin ve en son sendmail Zip dosyasını alın
  • masaüstüne çıkartın ve dosyaları, orada bulunan herşeyi değiştirerek\xampp\sendmail klasörünüze kopyalayın. 
  • Şimdi sendmail.ini dosyasını açın ve yukarıda gösterdiklerimi kopyalayıp yapıştırın. (Önce o dosyadaki her şeyi kaldırın ya da her şeyi yorumlayın!)
  • NOT: bunun için başlatılmış Mercury sunucularına ihtiyacınız yoktur.

Bu sorunla karşılaştığımda localhost'ta bir şifre kurtarma php yapıyordum. Kullanıcılara şifrelerini göndermem gerekiyordu. - php’niz tamam görünüyor

35
braviato

Tamam, bugün, en iyi cevap benim için işe yaramadı. Ancak, bu yaptı:

içinde 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

php.ini içinde:

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

@: bağlantı noktasına göre http://support.google.com/mail/bin/answer.py?hl=tr&answer=13287

13
aubreypwd

Tek yapmam gereken, "Güvenli olmayan uygulamaların hesabınıza erişmesine izin ver" ayarının açık olmasıydı. Sanırım bu, uygulamaya özel bir şifre oluşturmanın bir alternatifi.

https://support.google.com/accounts/answer/6010255 bilgi için

https://www.google.com/settings/security/lesssecureapps için anahtar

Güvenlik nedeniyle işiniz bittikten sonra kapatmaya değer olabilir. 

3
Dean_Wilson

Sadece zaten harika cevapları eklemek için. XAMPP'yi Yönetici olarak çalıştırdığınızdan emin olun. Benim için düzeltti. 

1
Julian

Bunlar en son Google SMTP sunucusu gereksinimleridir:

  1. Gmail SMTP sunucusu adresi: smtp.gmail.com
  2. Gmail SMTP şifresi: (Gmail şifreniz)
  3. Gmail SMTP bağlantı noktası (TLS): 587
  4. Gmail SMTP bağlantı noktası (SSL): 465
  5. Gmail SMTP TLS/SSL gerekli: Evet

Google SMTP Gereksinimleri

Sadece SSL kullanıyorsanız, gerekli Captcha doğrulama testiyle karmaşıklaşır, bu yüzden SSL başarısız olduğunda TLS'yi denecek olan SSL ayarımı otomatik olarak ayarladım.
enter image description here

1
Ryan Santos

a) php.ini .__ 'yu değiştirin. php.ini dosyasını “[Drive Letter]: [XAMPP dizini]\php” dizininde bulun. Örneğin. C:\xampp\php\php.ini

Php.ini dosyanızda sendmail_path dosyasını arayın ve “;” adlı yarı sütunu kaldırın [benimki yolu yoktu].

[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) sendmail.ini .__ 'yı değiştirin. sendmail.ini dosyasını dosya yolunda bulun “[Drive Letter]: [XAMPP dizini]\sendmail” ör. C:\xampp\sendmail'i\sendmail.ini

Aşağıda gösterilen "Mercury" ve "Ücretsiz posta hizmeti örneği" içeriğini

 # 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. Gmail hesabını ekleyin.

Örnek:

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

d. Apache Sunucusunu Yeniden Başlatın


Gmail kullanmadım. Hosting hesabımı kullandım. Bunu yaparsanız, SMTP ayarlarının doğru olduğundan emin olun. Benimki mail.abc.com değil smtp.gmail.com idi. Bu kod 2 web sitesinden alınmıştır. Her iki dosyayı da değiştirmeniz gerekir. Win200sp4 kutusunda çalışan Xampp 1.73 üzerinde çalışıyor. Bu iki dosya hariç tüm varsayılan ayarlar. php.ini ve sendmail.ini 

0
Joe

Gmail’i kullanırken başka bir sorun var. Artık Gmail’in güvenliği vardır, bu nedenle uygulamaya özel bir şifre oluşturmanız gerekir; normal Gmail erişiminiz için sahip olduğunuz şifreyi kullanamazsınız. Bunu yukarıdaki örnekleri deneyerek ve sendmail klasöründe bir hata günlüğü oluşturulduğunu fark ederek keşfettim. Hata günlüğünde bunu gösteren bir mesajla karşılaştım. 

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

Bunun eski bir yazı olduğunu biliyorum, ancak aşağıdakilerin benim için işe yaradığı gerçeğini paylaşacağımı düşündüm.

Şu anda Windows 7 ENT'de Apache/2.4.9 (Win64) PHP/5.5.12 ve MySQL 5.6.17 ile WAMP sunucusu kullanıyorum.

Bu dersi takip ettim: http://blog.techwheels.net/send-email-from-localhost-wamp-server-using-sendmail/

0
Bri