Often, public and private schools are listed in directories available from various schools, teachers organizations, or libraries (borrow it & make a photocopy). Barring that, go though the phone book and call each and every school to get the principal's name and the school zip code. It's a lot of work, but keep in mind how sucky it is to lose an entire year's salary because you were too lazy to spend a few evenings doing this. Public schools are listed in the blue pages and private schools are listed under "schools" in the yellow pages.
Enter your mailing list information as a data document (if you're using Microsoft Word, pick MailMerge from the Tools menu and it'll walk you through it). Then write a really good cover letter and mailmerge it with your data document and customize it via the magic of mailmerging (i.e. insert the principal's name, the school name, etc.). Here is a cover letter example and tips on cover letter construction.
Add to the customized cover letters your resume and photocopies of favorable of academic records and recommendation letters and mail.
Ideally, your mail will reach the principal's desk just as he/she needs to fill an unadvertised position. You should send your entire mailout in April (when teachers notify principals that they're leaving), at the beginning of August (when teachers may suddenly become ill and need replacing at the last minute), and in the first week of September (when scheduling conficts and increased enrollment create unforseen openings). Note that if you are applying for private schools (highly recommended as considerably fewer people do this, so there's less competition), principals start hiring in February/March to scoop up the good applicants before the public schools start interviewing, so mail the private schools at the beginning of February as well.