| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 846 人关注过本帖
标题:jmail 接收附件
只看楼主 加入收藏
fuyucao
Rank: 1
等 级:新手上路
帖 子:67
专家分:7
注 册:2011-10-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
jmail 接收附件
for(long i = 1; i <= lCount; i++)
     {  
     _bstr_t   a = pPOP3->GetMessageUID(i);
     pMessage = pMessages->Item[i];
     custom1.bstrSubject = pMessage->Subject;
     custom1.bstrFrom= pMessage->From;
     custom1.bstrBody = pMessage->Body;
     custom1.FromName=pMessage->FromName;

     jmail::IAttachmentPtr att;

     jmail::IAttachmentsPtr atts = pMessage->Attachments; // 获取附件列表
            long attNum = atts->Count;

            cout<<"Attachment Num: "<<attNum<<endl;          // 输出并下载所有附件
           
            atts->Item[i]->SaveToFile(atts->Item[i]->Name); // 与已有文件同名会引起异常

           
            cout<<"\n\n";
}
刚接触jmail,这是接收邮件的部分代码,我想接收附件,编译没有错误,就是加断点检验的时候执行到红色部分就跳到开始继续执行了,而且我不知道下载下来的附件放在什么地方,O(∩_∩)O谢谢各位了
搜索更多相关主题的帖子: long 
2012-02-22 16:58
fuyucao
Rank: 1
等 级:新手上路
帖 子:67
专家分:7
注 册:2011-10-17
收藏
得分:0 
有朋友能帮帮忙吗
2012-02-23 08:14
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
这个真没有接触 有心无力啊。。
看看有别人接触过没有

用心做一件事情就这么简单
2012-02-23 11:37
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
大哥,你总共没发多少帖子,每回都问高难的问题...
你可以在Sava前输出atts->Item[i]->Name看看,看路径是哪

jmail是第三方库吧,没有说明文档吗? 也许那上面会有

为游戏狂~~!!    大家努力编哈!
2012-02-23 12:11
fuyucao
Rank: 1
等 级:新手上路
帖 子:67
专家分:7
注 册:2011-10-17
收藏
得分:0 
回复 3楼 小鱼儿c
好的,同样O(∩_∩)O谢谢
2012-02-23 13:56
fuyucao
Rank: 1
等 级:新手上路
帖 子:67
专家分:7
注 册:2011-10-17
收藏
得分:0 
回复 4楼 smallmoon521
不用这么客气,叫小妹就行!
jmail::IAttachmentPtr att;
  jmail::IAttachmentsPtr atts;
 for(long i = 1; i <= lCount; i++)  
  {   
  _bstr_t a = pPOP3->GetMessageUID(i);
  pMessage = pMessages->Item[i];  
  custom1.bstrSubject = pMessage->Subject;  
  custom1.bstrFrom= pMessage->From;  
  custom1.bstrBody = pMessage->Body;
  custom1.FromName=pMessage->FromName;

  atts=pPOP3->Messages->Item[i]->Attachments;
  pPOP3->Messages->Item[i]->Encoding = "BASE64";

  for(int j=0 ; j < atts->Count; j++)  
  {
  long attNum = atts->Count;
  cout<<"Attachment Num: "<<attNum<<endl; // 输出并下载所有附件
  if(attNum>=1)
{
// atts.SaveToFile(atts->Item[j]->Name);
  atts->Item[j]->SaveToFile("c:\\di.txt"); // 与已有文件同名会引起异常
}
  cout<<"\n\n";
  }
  }
现在已经能从邮件中把txt附件下载到C盘了,但是每次的保存名字都是'di.txt',文件名相同,所以就引起了异常。大哥有什么方法吗?
2012-02-23 14:02
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:10 
回复 6楼 fuyucao
扫描当前目录文件名字。

然后做出处理。

其实我有这样的思路。

你在你下载目录新建一个保存你当前名字信息的data.

每次下载附件的时候,
你可以给文件名改写成为
d1.txt
d2.txt

```
```

````


这样就可以避免名字冲突了。
其实你也可以根据当前时间 命名啊。。


用心做一件事情就这么简单
2012-02-24 00:04
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:10 
正常应该先检查,如果有同名文件,则提示,是否覆盖或重新创建起个名
就算[另存为]一样

为游戏狂~~!!    大家努力编哈!
2012-02-24 21:32
fuyucao
Rank: 1
等 级:新手上路
帖 子:67
专家分:7
注 册:2011-10-17
收藏
得分:0 
回复 7楼 小鱼儿c
O(∩_∩)O谢谢哦
2012-02-27 10:21
fuyucao
Rank: 1
等 级:新手上路
帖 子:67
专家分:7
注 册:2011-10-17
收藏
得分:0 
回复 8楼 smallmoon521
thanks!O(∩_∩)O~
2012-02-27 10:22
快速回复:jmail 接收附件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025701 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved