jmail 删除指定messageid的邮件

qqweird0001 2009-09-03 03:38:57
Set pop3 = CreateObject("JMail.POP3") '创建POP3对象
pop3.Connect "vachel.cao@excelpoint.com.cn", "1234", "pop3.excelpoint.com.cn"

For j = 1 To pop3.Count
Set msg = CreateObject("jmail.message")
Set msg = pop3.Messages.Item(j)
s = pop3.GetMessageUID(j) //该局我认为是取制定的messageid
Response.write s //s的值为UID372-1249865992

pop3.deletesinglemessage (s) //删除指定邮件
Next

现行提示s类型不匹配
...全文
582 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacky_du1103 2012-05-22
  • 打赏
  • 举报
回复
测试邮箱:163.com 邮箱测试通过,263.net 邮箱通过
qq.com 邮箱不知道为什么不通过,可能是不支持 popmail.DeleteSingleMessage(iMsgID) 这个方法,原因有待继续研究。
jacky_du1103 2012-05-22
  • 打赏
  • 举报
回复
想到一个合适的解决方案,具体如下
Dim popmail As jmail.POP3Class = New POP3Class()
1.邮件列表显示控件用的是 Gridview或者winform的DataGridView之类的数据绑定控件,每次绑定的数据都来自服务器
2.选中删除的时候那个MessageID 可以通过如下方法得到
Dim iMsgID As Integer = dataGridView1.RowCount - dataGridView1.CurrentRow.Index
3.把前面获取邮件列表的popmail对象引用过来或者重新实例化一次popmail对象,然后执行
popmail.DeleteSingleMessage(iMsgID)就可以删除你指定的在服务器上对应的邮件了。
该方案经过测试,切实可行。

jacky_du1103 2012-05-22
  • 打赏
  • 举报
回复
其实大家都误解了楼主的意思,楼主其实是想把邮箱里面的邮件先存到本地,同时存储邮件的唯一标识 MessageID,然后下次加载本地邮件的时候可以通过查询某封邮件存储的MessageID 去删除服务器上面对应的那封邮件,问题出来了, 通过 Set pop3 = CreateObject("JMail.POP3") ,pop3.GetMessageUID(i)得到的MessageID 是一个字母和数字混合的字符串 比如“ZL0217-48NUDXeE9hmqFQdIHSz7H25”,然后删除邮件按各位大神讲的用 pop3.deletesinglemessage(j),是会出错的,因为这里面的这个j 要求是 integer 整型, 小弟遇到同样的问题,还望各位大神再帮忙看看。 注意:关键是存储本地之后过一段时间再指定删除,并不是在获取邮件的循环里面删除。
qqweird0001 2009-09-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 chinmo 的回复:]
引用 14 楼 qqweird0001 的回复:
引用 12 楼 chinmo 的回复:
对你无语,这么久,程序都给你,还问!!


实践结果就是最好的证明


你的态度好像不对,论坛目的好像不是你说的那样。
不是小肚鸡肠,我但愿你能理解我的意思。
谦虚一点、踏实一点做事没什么坏处。


你那叫做事认真吗?你那叫偷懒,实践是最好的证明,也是给自己最好的解释
[/Quote]

。。。
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qqweird0001 的回复:]
引用 12 楼 chinmo 的回复:
对你无语,这么久,程序都给你,还问!!


实践结果就是最好的证明


你的态度好像不对,论坛目的好像不是你说的那样。
不是小肚鸡肠,我但愿你能理解我的意思。
谦虚一点、踏实一点做事没什么坏处。
[/Quote]

你那叫做事认真吗?你那叫偷懒,实践是最好的证明,也是给自己最好的解释
浪尖赏花 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qqweird0001 的回复:]
引用 12 楼 chinmo 的回复:
对你无语,这么久,程序都给你,还问!!


实践结果就是最好的证明


你的态度好像不对,论坛目的好像不是你说的那样。
不是小肚鸡肠,我但愿你能理解我的意思。
谦虚一点、踏实一点做事没什么坏处。
[/Quote]
牛年牛人出牛语

技术不是唯一,人品和态度很重要
qqweird0001 2009-09-09
  • 打赏
  • 举报
回复
喜欢13楼这样认真地注释
qqweird0001 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 chinmo 的回复:]
对你无语,这么久,程序都给你,还问!!


实践结果就是最好的证明
[/Quote]

你的态度好像不对,论坛目的好像不是你说的那样。
不是小肚鸡肠,我但愿你能理解我的意思。
谦虚一点、踏实一点做事没什么坏处。
xzx99 2009-09-08
  • 打赏
  • 举报
回复

Set pop3 = CreateObject("JMail.POP3") '需要Jmail 4.4等企业版
pop3.Connect "abcde@139.com","12345","pop.139.com"

For j = 1 To pop3.Count
'Set msg = CreateObject( "jmail.message ")
'Set msg = pop3.Messages.Item(j)
pop3.deletesinglemessage(j) '删除指定邮件,1是最旧邮件。刷新邮箱页面后才能看到被删除的效果
Next
  • 打赏
  • 举报
回复
对你无语,这么久,程序都给你,还问!!


实践结果就是最好的证明
qqweird0001 2009-09-08
  • 打赏
  • 举报
回复
那请问 DeleteSingleMessage(MessageID)
从邮件服务器上删除指定的邮件

messageid 不是用函数pop3.GetMessageUID(j)取得的?
黑心 2009-09-07
  • 打赏
  • 举报
回复
pop3.deletesinglemessage(j) //删除指定邮件
qqweird0001 2009-09-07
  • 打赏
  • 举报
回复
qqweird0001 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinmo 的回复:]
引用 1 楼 qqweird0001 的回复:
版主们,这个问题我都发了3、4个帖子,有的发到你们的页面留言,你们真的这么忙嘛?

上次我就告诉你了
直接
pop3.deletesinglemessage(i)就可以删除了

还要获取什么?
Set  pop3  =  CreateObject( "JMail.POP3 ")      '创建POP3对象
        pop3.Connect  "vachel.cao@excelpoint.com.cn ",  "1234 ",  "pop3.excelpoint.com.cn " 
       
        For  j  =  1  To  pop3.Count
                Set  msg  =  CreateObject( "jmail.message ")
                Set  msg  =  pop3.Messages.Item(j)               
                pop3.deletesinglemessage(j)                  //删除指定邮件
      Next

[/Quote]

那请问
DeleteSingleMessage(MessageID)
从邮件服务器上删除指定的邮件

messageid 不是用函数pop3.GetMessageUID(j)取得的



anbs01 2009-09-04
  • 打赏
  • 举报
回复
pop3.deletesinglemessage(i)
凡夫与俗子 2009-09-04
  • 打赏
  • 举报
回复
额。原来是这里。Jmail收邮件真弱啊。
凡夫与俗子 2009-09-04
  • 打赏
  • 举报
回复
顶楼上的。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qqweird0001 的回复:]
版主们,这个问题我都发了3、4个帖子,有的发到你们的页面留言,你们真的这么忙嘛?
[/Quote]
上次我就告诉你了
直接
pop3.deletesinglemessage(i)就可以删除了

还要获取什么?
Set pop3 = CreateObject( "JMail.POP3 ") '创建POP3对象
pop3.Connect "vachel.cao@excelpoint.com.cn ", "1234 ", "pop3.excelpoint.com.cn "

For j = 1 To pop3.Count
Set msg = CreateObject( "jmail.message ")
Set msg = pop3.Messages.Item(j)
pop3.deletesinglemessage(j) //删除指定邮件
Next
qqweird0001 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lihui_shine 的回复:]
试试:
s = msg.Headers.GetHeader("Message-ID");
或者
s = msg.GetHeader("Message-ID");

[/Quote]

先谢谢你,我跑一下看看
浪尖赏花 2009-09-03
  • 打赏
  • 举报
回复
试试:
s = msg.Headers.GetHeader("Message-ID");
或者
s = msg.GetHeader("Message-ID");
加载更多回复(1)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧