在打开邮件消息之后我们就可以通过直接引用邮件消息对象的相关属性来得到邮件的标题,正文和附件。完整的邮件接收代码如下:
****************** 程序代码:接收邮件 *********************
/* 功能:1、完成从收件箱中读取邮件的标题,正文等信息。
2、同时,如果该邮件有附件的话还读取该附件的暂存路径
3、将取得的邮件信息依次存入到一个数据窗口中
*/
mailfiledescription mfd
mailReturnCode mret
mailsession mses
mailMessage msg
long n, mailcount, c_row
// 创建邮件会话对象
mSes = create mailSession
// 建立邮件会话
mRet = mSes.mailLogon(mailNewSession!)
IF mRet <> mailReturnSuccess! THEN
MessageBox("Mail", '注册失败.')
RETURN
END IF
mSes.mailGetMessages()
mailcount = UpperBound(mSes.MessageID[]) // 得到一共有多少封邮件
sle_1.Text = String(mailcount)
// 依次读取每一封邮件
FOR n = 1 to mailcount
mfd.pathname = ''
// 读取第N封邮件
mSes.mailReadMessage(mSes.MessageID[n], msg, mailEntireMessage! , FALSE)
// 将邮件信息添加到数据窗口中
c_row = dw_1.InsertRow(0)
dw_1.SetItem(c_row, "msgid", mSes.MessageID[n]) // 邮件标识
dw_1.SetItem(c_row, "msgdate", msg.DateReceived) // 邮件接收日期
dw_1.SetItem(c_row, "msgsubject", Left(msg.Subject, 50)) // 邮件主题
dw_1.SetItem(c_row, "notetext", Left(msg.NoteText, 50)) // 邮件正文
if UpperBound(msg.AttachmentFile[]) > 0 then mfd = msg.AttachmentFile[1]
if mfd.pathname <> "" then dw_1.SetItem(c_row, "Attach", Left(mfd.pathname, 100)) // 附件路径
NEXT
***************** 结束 *********************
本程序也只是提供了读取邮件标题,正文的功能,对其附带的附件也只是给出了附件存放的位置并没有读取附件的内容,因此,如何将附件传送过来的数据添加到应用程序的数据库中的技术并未涉及到。最简单的方法就是通讯双方首先确定一个文件格式,像文本文件格式,Excel文件格式等等。然后程序根据约定的文件格式对数据窗口进行数据导入操作,具体的如何实现还请大家自己去试试。