Mysql入门系列:运行perl DBI
2006-12-31 10:49:29 来源:WEB开发网对于要发送通知的每个成员,此脚本查找相应的member 表项目,抽取电子邮件地址,并向那个地址发送一条消息。如果此项中没有电子邮件地址,则renewal_notify 生成一条消息,通知您需要以一些其他方式与这些成员联系。
要想发送电子邮件, renewal_notify 打开与sendmail 程序的管道,并将这封邮件推入此管道中(在Windows 下不能这样操作,Windows 中没有s e n d m a i l。可能需要寻找发送邮件的模块来代替它使用)。在此脚本开头附近,将到sendmail 的路径名设置为参数。可能需要更改该路径,因为sendmail 的位置随系统的变化而变化:
# change path to match your system
my ($sendmail)="/usr/lib/sendmail -t -oi";
主要参数处理循环的操作如下所示。如果在命令行没有指定参数,则我们读取标准的输出作为输入。否则,我们通过将参数传递给i n ter p r e t _ a rgument( ),将它分类为ID 号、电子邮件地址或者文件名来处理每个参数:
函数read_file( ) 读取了文件的内容(假设已经打开),并查看每行的第一个域(如果我们将need_renewal 的输出作为renewal_notify 的输入,则每行都有若干域,但是我们只想查看第一个域)。
i n ter p r e t _ a rgument( ) 函数将每个参数分类,以便确定它是ID 号码、电子邮件地址还是文件名。对于ID 号码和电子邮件地址,它查找适当的成员项目,并将它传递给n o t i f y _ member ()。我们必须注意由电子邮件所指定的成员。两个成员具有同样的地址是可能的(例如,丈夫和妻子),并且我们不想将一条消息发送给不能用这条消息的人。为了避免这一点,我们查找了与电子邮件地址相对应的成员的ID 号码,来确保内容的正确。如果此地址和一个以上的ID 号码匹配,则它是不确定的,我们在显示一条警告消息后忽略它。
更多精彩
赞助商链接