Page 162 - Open Soource Technologies 304.indd
P. 162
Unit 9: Working with Forms
11. } else { // must be equivalent Notes
12. header(“Location: congrats.html”);
13. exit;
14. }
15. ?>
9.7 Sending Mail on Form Submission
You’ve already seen how to take form responses and print the results to the screen. You’re only
one step away from sending those responses in an email message, as you’ll soon see. Before
learning about sending mail, however, read through the next section to make sure that your
system is properly configured.
9.7.1 System Configuration for the Mail() Function
Before you can use the mail() function to send mail, a few directives must be set up in the php.ini
file so that the function works properly. Open php.ini with a text editor and look for these lines:
[mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
sendmail_from = me@localhost.com
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
;sendmail_path =
If you’re using Windows as your Web server platform, the first two directives apply to you. For
the mail() function to send mail, it must be able to access a valid outgoing mail server. If you
plan to use the outgoing mail server of your ISP (in the following example, we use EarthLink),
the entry in php.ini should look like this:
SMTP = mail.earthlink.net
The second configuration directive is sendmail_from, which is the email address used in the
From header of the outgoing email. It can be overwritten in the mail script itself, but normally
operates as the default value. For example:
sendmail_from = youraddress@yourdomain.com
A good rule of thumb for Windows users is that whatever outgoing mail server you’ve set up
in your email client on that machine, you should also use as the value of SMTP in php.ini. If
your Web server is running on a Linux/Unix platform, you use the sendmail functionality of
that particular machine.
In this case, only the last directive applies to you: sendmail_path. The default is sendmail
-t -i, but if sendmail is in an odd place or if you need to specify different arguments, feel free
to do so, as in the following example:
sendmail_path = /opt/sendmail -odd -arguments
After making any changes to php.ini on any platform, you must restart the Web server process
for the changes to take effect.
LOVELY PROFESSIONAL UNIVERSITY 157