ошибка при использовании c # mail.dll
Вопрос
Я пытаюсь прочитать учетную запись Gmail, чтобы получить данные GPS, которые отправляются туда (в тексте электронного письма) с мобильного телефона (мой телефон)
using (Pop3Client cl = new Pop3Client())
{
cl.UserName = "crash893";
cl.Password = "password";
cl.ServerName = "pop.gmail.com";
cl.AuthenticateMode = Pop3AuthenticateMode.Pop;
cl.Ssl = true;
cl.Authenticate();
///Get first mail of my mailbox
Pop3Message mg = cl.GetMessage(1); <<<<<<<<<< ERROR
String MyText = mg.BodyText;
///If the message have one attachment
Pop3Content ct = mg.Contents[0];
///you can save it to local disk
ct.DecodeData("c:\\test.txt");
}
но я получаю исключение для сообщения " получить первую почту из почтового ящика
"Higuchi.Net.Pop3.Pop3ConnectException: Pop3 connection is closed
at Higuchi.Net.Pop3.Pop3Client.SendCommand(String inCommand)
at Higuchi.Net.Pop3.Pop3Client.Execute(String inCommand, Boolean inIsMultiLine)
at Higuchi.Net.Pop3.Pop3Client.Execute(Pop3Command inCommand)
at Higuchi.Net.Pop3.Pop3Client.GetMessage(Int64 inMailIndex)"}
В идеале я хотел бы открыть следующее: прочитать все новые непрочитанные электронные письма в этой учетной записи для определенной строки темы, затем прочитать данные в теле и пометить их как прочитанные
кто-нибудь знает, почему происходит его ошибка?
есть ли у кого-нибудь опыт работы с почтой c #, который мог бы указать мне правильное направление для чтения и создания писем как прочитанных и т. д.
Решение 3
using (Pop3Client cl = new Pop3Client())
{
cl.UserName = "ewgsdssw";
cl.Password = "sdgwsegw";
cl.ServerName = "pop.gmail.com";
cl.AuthenticateMode = Pop3AuthenticateMode.Pop;
cl.Port = 995;
cl.Ssl = true;
cl.Authenticate();
///Get first mail of my mailbox
///
int total = Convert.ToInt16(cl.GetTotalMessageCount());
while (total >= 1)
{
Pop3Message mg = cl.GetMessage(total);
if (mg.Subject == "I am Here")
{
// http://maps.google.com/maps?q=38.89552,-77.43265
//(+/- 76 metres.)
string location = mg.BodyText;
location = location.Replace("http://maps.google.com/maps?q=","~");
location = location.Replace("metres.)\r\n\r\n","~");
location = location.Split('~')[1];
location = location.Replace("(+/- ", ",");
location = location.Replace("\r\n", "");
string[] data = location.Split(',');
string lat = data[0];
string lon = data[1];
string res = data[2];
DateTime time = mg.Date;
textBox1.AppendText(string.Format("Lat: {0} LON: {1} Res: {2} TIME: {3}\r\n",lat,lon,res,time.ToString()));
}
total--;
}
}
Другие советы
Невозможно пометить электронные письма как прочитанные с использованием протокола POP.
Попробуйте использовать IMAP.
cl.Port = 995;
У меня нет опыта работы с C # Mail, и этот ответ может не помочь, но в прошлом я сталкивался со странностями, когда пытался написать код для отправки / получения электронной почты. Р>
Оказалось, что антивирусное программное обеспечение, на котором мы работали, имело белый список разрешенных .EXE, которые могли устанавливать входящие / исходящие соединения POP3 или SMTP. Есть ли шанс, что это ваша проблема?