现在收发E-MAIL的软件有很多,给朋友发封信,带个问候,简单、快捷,但有时用这些普遍的软件却很不方便。比如,公司经常会跟自己的客户保持信息往来,如何实现呢?打电话?三句两句还好,如果是公司的新产品的详细介绍,则要花掉太长的时间,浪费自己的时间,也浪费客户的时间,而且同样的话难道真要重复N次吗?发E-MAIL?当然最好了,但,怎么发?用普通的软件,似乎达不到满意的效果,编写一段程序去实现烦琐的手工劳作,无疑是最好的方法。但,会不会很难?用VD,当然不会,在VD中实现这一功能是很容易的。
在VD的“其他元件”中就有一个E-MAIL元件。通过它来实现E-MAIL的发送与接收是很简单的。首先看一下该元件的属性吧。E-MAIL元件有很多的属性,其中包括的“送信人地址”、“收信人地址”、“信件主题”、“信件内容”、“用户帐号”、“信箱密码”、“服务器地址”等等,都是非常熟悉的内容。其中“信件内容”既可以是发信的内容,也可以是接收到的内容;如果发送与接收的服务器不同,则要对应定义“服务器地址”。
E-MAIL元件有四个主要函数,GETMAILCOUNT(),RECVALLMAILS(INDEX—N),SENDMAIL(),DELETEALLMAILS(INDEX—N),依次为信箱内未收信件数目,接收第N个信件(当N=0时表示全部),发送邮件,删除信箱内的第N封信。
现在我们先来实现简单的发信功能吧。在一个新的工程中,先贴入一个E-MAIL元件,将一些必要的信息,输入元件属性,例如“送信人地址”设为“SVC@DBTOOLS.COM”;“服务器地址”设为“DBTOOLS.COM”;“用户帐号”设为“SVC”;并在“信件内容”中输入了“测试中,请谅解!”;其他的,如“信件主题”、“附件”等,可依据情况依次添入,当然,所有这些也可以在程序中动态定义。接下来就要贴入一个BUTTON元件了,在BUTTON0的“标题”属性中输入“邮件发送”,“执行程序”中输入TESTSEND()。点击下拉框进入程序编辑器,写入以下代码
If Mail0.sendmail ()
Mess (“OK!”)
Else
Mess (“FAIL!”)
Endif
这样,在发送成功后就会出现对话框,提示“OK!”,表示发送成功,“FAIL!”,发送失败。
以上只是单一的发送信件的方法,是基本操作,任何E-MAIL类的软件都可以完成,甚至效果更好。但现在要解决的关键不是如何发送,而是如何将大量的信箱地址自动的载入,连续发送信息。要想有规律的对信息访问,就要首先将信息有规律的存放,数据表就是很好的方法,且在程序中容易实现数据的调用。如果没有这样的客户数据表,那就快建一个吧!虽然麻烦了一些,但这是一次性的工作,且属磨刀不误砍柴功。如果已有客户数据,也可以在原有的客户数据表中加入一个字段,用于存放信箱地址。
假设以上的数据准备工作已经完成,现有一客户资料的数据表CUSTOMER,其中有字段E_ADD存放了客户的信箱地址。现在就来实现多客户的信息发送。新建一个工程,在数据关联窗口中新增客户数据表CUSTOMER,在FORM中贴入MAIL0元件,并贴入EDIT0,EDIT1,MEMO0,MEMO1,将其内容分别作为邮件的主题,收信人地址,邮件的内容及附件。其中的收信人地址是程序载入,其他为手工输入。同样再贴入一个BUTTON0,设置同上。在程序编辑器中写入以下代码:
Mail0.Subject = Edit0.text
Mail0.lines = Memo0.lines
M_attach = atom (Memo1.lines)
Mtoa (M_attach , Mail0.attachfiles)
Customer.gotop ()
Do while !customer.eof ()
If !empty (customer->e_add)
Edit1.text = alltrim (customer->e_add)
Mail0.toaddress.lines[1] = edit1.text
If Mail0.sendmail () = 0
Mess (“地址为 ” + customer->e_add + “ 的客户,发送失败!”)
Endif
Customer.skip (1)
Endif
Enddo
写到这里,其实已经完全实现了所要的功能,执行程序,输入相应的主题,内容或附件,点击BUTTON,你的E-MAIL就会到乖乖地跑到每个客户的信箱里了。
怎么样?很简单吧,如果想要做信件的接收,也不难,只是在接收时,要先算出信件的数量,然后逐一的查看。在VD中还有很多的功能,能让你用简单的程序代码,轻松实现,有兴趣不妨试试看。
|