首页 新闻 会员 周边

回复邮件怎么样接收啊?

0
悬赏园豆:200 [已解决问题] 解决于 2015-06-02 13:53

由于系统业务需要,要解析客户回复的邮件,步骤如下

1.系统后台用a@company.com发送邮件到user@company.com

2.user@company.com收到邮件后。回复这封邮件

3.系统后台专门有用于处理接收邮件,

现在的问题是,当user回复邮件的时候,我们能不能知道当前user回复的是哪封邮件?

还有当第一步发送邮件的时候。是不是有个邮件ID?

这样我们才能把相应的数据写到数据库,回复的时候也知道相应的信息。

ciya的主页 ciya | 初学一级 | 园豆:6
提问于:2015-06-02 11:09
< >
分享
最佳答案
0

昨天经过几个小时的研究,把问题搞定了。主要是用邮件Header中的Message-Id来做。

首先在后台用a@company.com发送邮件,在Header中手动增加Message-Id

SmtpClient smtp = new SmtpClient();
            MailMessage message = new MailMessage();
            message.Body = "test mail Body";
            message.From = new MailAddress("a@company.com", "SystemA");
            message.Subject = "MailSubject";
            message.To.Add(new MailAddress("user@company.com", "User"));
            message.Headers.Add("Message-Id", String.Format("{0}@{1}", Guid.NewGuid().ToString(), "company.com"));
            smtp.Send(message);

这样自己生成的Message-Id可以记录到数据库

第一步完成,接下来,用户接收邮件。

我们可以用以下代码来看到用户收到的邮件中,邮件头Header中的Message-Id就是我们在上面增加时候的ID

client.Connect("pop3.company.com", 110, false);
                client.Authenticate("username", "password");
                //得到邮件总数
                int MailCount = client.GetMessageCount();

                //拿到邮件头
                MessageHeader RMailHeader = client.GetMessageHeaders(MailCount);
                //邮件头中的Message-Id
                Console.WriteLine(RMailHeader.MessageId);

                //下载邮件
                Message RMessage = client.GetMessage(MailCount);
                //得到邮件中的附件
                List<MessagePart> RMessageAttach = RMessage.FindAllAttachments();

                Console.WriteLine(MailCount.ToString());
                Console.ReadKey();

第3步,用户回复邮件,回复后,我们用上面同样的代码在接收a@company.com里面的邮件

就会发现,邮件Header中有一个属性:List<string> RAddress = RMailHeader.InReplyTo;

这个InReplyTo就是告诉你,这个邮件是回复的哪封邮件的ID,也就是我们第一步生成的Message-Id

注:第3步中回复的邮件的Message-Id和我们第一步生成的Message-Id是不同的,

第3步中的InReplyTo和第1步中Message-Id是一样,这样我们就能知道这个邮件是回复的哪封邮件
这样我们就可以在系统中做相应的处理了

ps: 以上内容部分为借鉴其他大大的.

收获园豆:200
请叫我头头哥 | 大侠五级 |园豆:9382 | 2015-06-02 13:50

http://q.cnblogs.com/q/60529/
可惜本来是我的豆豆。。。。

Giant150 | 园豆:1165 (小虾三级) | 2015-06-03 11:14
其他回答(1)
0

你问别人是不是有个邮件ID,你知道都不知道,  别人怎么知道呢? 

问天何必 | 园豆:3311 (老鸟四级) | 2015-06-02 12:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册