Lesson 10. So You've Seen Elvis

Zope cannot find the tutorial examples. You should install the tutorial examples before continuing. Choose "Zope Tutorial" from the product add list in the Zope management screen to install the examples.

If you have already installed the tutorial, you can either follow along manually, or reinstall the tutorial examples. Note: make sure that you have cookies turned on in your browser.

What's the first thing you do when you spot Elvis? Report it at the "Elvis Lives" web site! Let's enhance our site to allow visitors to report their Elvis sightings.
  1. Click the mailhost Mail Host object to edit it.
  2. Type the name of your mail server in the SMTP Host field.

Your mail server is typically named mail or smtp. For example, mail.elvislives.com. If you don't know the name of your mail server, ask your system administrator, or check the configuration of your mail client.

  1. Click the Save Changes button.

Now Zope can send mail. Next let's edit the mail sending script.

  1. Click the action.py script to edit it.

This script is called when a site visitor fills out an Elvis sighting form. It sends you mail telling you about the sighting. Mail is sent by calling the simple_send method of the Mail Host object.

To get this script to work you need to change the recipient and sender variables.

  1. Change the recipient and sender variables to your email address in place of user@host.
  2. Click the Save Changes button.
  3. Now go to the form.html page in the lesson10 folder.
  4. Click the Test tab to view it.
  5. Fill out the Elvis sighting form and submit it.

You should soon receive a piece of email describing the Elvis sighting.

Congratulations, you've built a mail form. If you receive a Zope error, there is a good chance that you haven't set the SMTP Host setting on your mail host object correctly.

Summary

After you create a mail host, you can send mail from any script by calling its simple_send method.

In the next lesson you'll learn how to use Zope to put a database on the web.