我尝试将收件箱电子邮件复制到文本文件,然后在此文本文件中搜索 word 。如果这个单词存在,我将使用这个词从db查询 email-id ,最后将此邮件转发到此email-id。 我的问题是我无法将电子邮件复制到文本文件中。 msg变量总是为空 这是我的代码:
using (Pop3Client client = new Pop3Client())
{
client.Connect("pop.gmail.com", 995, true);
client.Authenticate("mymail@gmail.com", "pasword", AuthenticationMethod.UsernameAndPassword);
// Get the number of messages in the inbox
int messageCount = client.GetMessageCount();
for (int i = messageCount; i > 0; i--)
{
string msg = client.GetMessage(i).MessagePart.GetBodyAsText().ToString();
System.IO.File.WriteAllText(@"d:\\My File2.log", msg.ToString());
var body = System.IO.File.ReadLines(@"d:\\My File2.log");
if (body.Contains("cusotmer ID: X"))
{
getemailadress();
sendemail();
}
}
}
答案 0 :(得分:0)
你能使用这段代码: var mailbody = ASCIIEncoding.ASCII.GetString(message.RawMessage); 像这样:
using (Pop3Client client = new Pop3Client())
{
client.Connect("pop.gmail.com", 995, true);
client.Authenticate("mymail@gmail.com", "pasword", AuthenticationMethod.UsernameAndPassword);
// Get the number of messages in the inbox
int messageCount = client.GetMessageCount();
for (int i = messageCount; i > 0; i--)
{
string msg = ASCIIEncoding.ASCII.GetString(client.GetMessage(i).RawMessage);
System.IO.File.WriteAllText(@"d:\\My File2.log", msg);
var body = System.IO.File.ReadLines(@"d:\\My File2.log");
if (body.Contains("cusotmer ID: X"))
{
getemailadress();
sendemail();
}
}
}
并且,建议:停止调用.ToString()已经是字符串对象。
我无法理解您为什么要将messageBody保存到TextFile。因为WriteAllText函数会在每个循环上覆盖此文件。 所以你不会发现这个方法的所有消息结束。您只能在文本文件中找到最后一个消息正文。你注意到了吗?