Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
423 views
in Technique[技术] by (71.8m points)

php - Sending email from localhost server xampp/sendmail

I have set up a PHP site that will be locally hosted. One function of this is to send an email with items from a shopping cart. When hosted online (for testing) the email() function worked perfectly sending email.

I'm now transferring the site to a local machine, and am unable to send email.

Originally the emails came from [email protected] which worked well, although I'd happily set up a gmail or similar to handle the sending.

I've read a few tutorials about setting things up and have firstly tried using sendmail and a gmail address.

I'm wondering if there's something simple I've missed in setting up the ini files.

I edited my php.ini file as follows:

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

 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:xamppsendmailsendmail.exe" -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:xamppmailoutput folder
;sendmail_path="C:xamppmailtodiskmailtodisk.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:xamppphplogsphp_mail.log"

and then my sendmail.ini file as follows:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=password
[email protected]
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try this

sendmail.ini

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=ssl
error_logfile=error.log
debug_logfile=debug.log
auth_username=[email]@gmail.com
auth_password=[email password]
pop3_server=
pop3_username=
pop3_password=
force_sender=[email]@gmail.com
force_recipient=
hostname=smtp.gmail.com

php.ini

[mail function]

SMTP = smtp.gmail.com
smtp_port = 465
sendmail_path = ""C:xamppsendmailsendmail.exe" -t"
mail.add_x_header=Off

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...