Search Google

Sunday, 21 December 2014

How to send emails from localhost (Windows XP Apache/PHP Server)How to send emails from localhost (Windows XP Apache/PHP Server)

 https://plus.google.com/113677221098417166384/posts




Sometimes we may need to send emails in our local PHP projects. In order to do that, we may install a E-Mail server, but that could be a little bit tedious. The easiest alternative is using sendmail and the smtp server of any of your mail accounts (gmail, yahoo, hotmail, ETC).
In this example I’m showing how to configure sendmail to make it working with a Gmail account. But as I said you can make it working with any smtp server you have already.

1st step: Download sendmail

Download sendmail and extract all the files in the folder “C:\sendmail\”

2nd step: configure sendmail.ini

Open the file “C:\sendmail\sendmail.ini” and add the following params in the corresponding lines:
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=your_address@gmail.com
auth_password=your_password
force_sender=your_address@gmail.com
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
; 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=587
  
; 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=
  
; 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_address@gmail.com
auth_password=your_password
  
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines
  
pop3_server=
pop3_username=
pop3_password=
  
; to force the sender to always be the following email address, uncomment and
; populate with a valid email address.  this will only affect the "MAIL FROM"
; command, it won't modify the "From: " header of the message content
  
force_sender=your_address@gmail.com
  
; 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=
 

3rd step: Configure php.ini

Open the php.ini, find the following lines and add the path to the sendmail executable file. Don’t forget to restart the Apache server after doing that.
 
?
1
2
3
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\sendmail\sendmail.exe -t"

4th step: test it!

Just a little test to check if it’s actually working. Create a PHP script with the following code:


?
1
2
3
4
mail(
     'your_email@gmail.com',
     'Works!',
     'An email has been generated from your localhost, congratulati

No comments:

Post a Comment