Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException" / 11 сообщений из 11, страница 1 из 1
22.01.2013, 08:48
    #38119012
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
Всем привет!

Вот так получаю письма с атачами, вернее атачи:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
static void Main(string[] args)
        {

            int z = 0;
            OpenPOP.POP3.POPClient popClient = new OpenPOP.POP3.POPClient ("mail.serv.ru", 11, "user", "pass",  OpenPOP.POP3.AuthenticationMethod.USERPASS);

            string pathToExe = System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]).ToString();
         
            try
            {
                Console.WriteLine(string.Format("Message count {0}", popClient.GetMessageCount()));
                z = popClient.GetMessageCount();

                for (int i = 1; i <= z; i++)
                {
                    OpenPOP.MIMEParser.Message msg = popClient.GetMessage(i, false);

                    msg.GetMessageBody(msg.RawMessageBody);
                    string text = msg.MessageBody.Count != 0 ? msg.MessageBody[0].ToString() : string.Empty;
                    byte[] data = Encoding.Default.GetBytes(text);
                   

                    if (msg.FromEmail == "cassa@mail.ru")
                    {
                        for (int j = 1; j <= msg.AttachmentCount - 1; j++)
                        {
                            OpenPOP.MIMEParser.Attachment attach = msg.GetAttachment(j);
                            byte[] fileAttach = attach.DecodedAsBytes();
                            if (fileAttach != null)
                               


                                //ЛОГИРОВАНИЕ                      
                                File.AppendAllText(pathToExe + "\\Mail_log.txt",
                                                   DateTime.Today.ToShortDateString() + "   " +
                                                   DateTime.Now.ToShortTimeString() + " " + attach.ContentFileName +
                                                   Environment.NewLine);
                            File.WriteAllBytes(string.Format(pathToExe + "\\In\\{0}", attach.ContentFileName),
                                               fileAttach);

                            Console.WriteLine(pathToExe + "\\Mail_log.txt",
                                              DateTime.Today.ToShortDateString() + "   " +
                                              DateTime.Now.ToShortTimeString() + " " + attach.ContentFileName);
                            Console.WriteLine(string.Format(pathToExe + "\\In\\{0}", attach.ContentFileName),
                                              fileAttach);


                            Console.WriteLine(string.Format("Message nummber {0}", i));
                            Console.WriteLine(string.Format("ID {0}", msg.MessageID));
                            Console.WriteLine(string.Format("Subject {0}", msg.Subject));
                            Console.WriteLine(string.Format("numb atach - {0}", j));
                            Console.WriteLine(string.Format("Attachments {0}", msg.Attachments[j]));

                            //Console.Read();
                        }


                        popClient.DeleteMessage(i); //!!!!!!!!! Удаление
                    }
                    
                }




            }


            catch
            {
                Process.GetCurrentProcess().Kill();
            }


            finally
            {
                if (popClient.Connected)
                    popClient.Disconnect();

            }



        }



эта консольная приблуда целый день запускается и благополучно "выдергивает" атачи с почты в нужную папочку
НО
около 5 раз на день вылизит вот такой эксепшн:

************** Текст исключения **************
OpenPOP.POP3.PopServerLockException: Выдано исключение типа "OpenPOP.POP3.PopServerLockException".
в OpenPOP.POP3.POPClient.AuthenticateUsingUSER(String strlogin, String strPassword)
в OpenPOP.POP3.POPClient.Authenticate(String strlogin, String strPassword, AuthenticationMethod authenticationMethod)
в OpenPOP.POP3.POPClient..ctor(String strHost, Int32 intPort, String strlogin, String strPassword, AuthenticationMethod authenticationMethod)
в SaveMailAtach.Form1.Form1_Load(Object sender, EventArgs e)


нажимаешь на исключении выход и даже если сразу запустить еще раз прогу - работает.... но естественно пока не нажмешь "выход" - прога стоит.... что не допустимо

чего поп сервер заблокирован фиг его знает, ящик исключительно для этой проги, больше с ним никто не работает, пробовал как видно из кода варварски убивать процесс.... не помогло...

Буду очень рад помощи.
Спасибо!
...
Рейтинг: 0 / 0
22.01.2013, 12:39
    #38119410
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
Sputnick,

а что делает эта строчка?
Process.GetCurrentProcess().Kill();
...
Рейтинг: 0 / 0
22.01.2013, 12:55
    #38119452
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
pationSputnick,

а что делает эта строчка?
Process.GetCurrentProcess().Kill();

ну это неудачная попытка убить процесс если получим эксепшн.... но эффекта ноль
...
Рейтинг: 0 / 0
22.01.2013, 12:57
    #38119454
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
блин, наверно правильней еще добавить -
catch(Exception e).....
...
Рейтинг: 0 / 0
22.01.2013, 13:24
    #38119520
sld
sld
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
Код: c#
1.
2.
3.
            popClient = new OpenPOP.POP3.POPClient ("mail.serv.ru", 11, "user", "pass",  OpenPOP.POP3.AuthenticationMethod.USERPASS);

            string pathToExe = System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]).ToString();



может это тоже в try catch занести, тогда может не будет вываливаться
...
Рейтинг: 0 / 0
22.01.2013, 13:25
    #38119529
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
Sputnickблин, наверно правильней еще добавить -
catch(Exception e).....
наверно правильней книжек почитать
...
Рейтинг: 0 / 0
22.01.2013, 13:36
    #38119567
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
SputnickБуду очень рад помощи

1) почитать протокол pop3 (rfc1939)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
PASS string

         Arguments:
             a server/mailbox-specific password (required)

         Restrictions:
             may only be given in the AUTHORIZATION state immediately
             after a successful USER command

         Discussion:
             When the client issues the PASS command, the POP3 server
             uses the argument pair from the USER and PASS commands to
             determine if the client should be given access to the
             appropriate maildrop.

             Since the PASS command has exactly one argument, a POP3
             server may treat spaces in the argument as part of the
             password, instead of as argument separators.

         Possible Responses:
             +OK maildrop locked and ready
             -ERR invalid password
             -ERR unable to lock maildrop

         Examples:
             C: USER mrose
             S: +OK mrose is a real hoopy frood
             C: PASS secret
             S: -ERR maildrop already locked
               ...
             C: USER mrose
             S: +OK mrose is a real hoopy frood
             C: PASS secret
             S: +OK mrose's maildrop has 2 messages (320 octets)

2) Уметь обрабатывать корректный ответ сервера
...
Рейтинг: 0 / 0
22.01.2013, 13:40
    #38119578
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
Arm79SputnickБуду очень рад помощи

1) почитать протокол pop3 (rfc1939)

Код: plaintext
1.
2.
3.
4.
PASS string

         Arguments:
         ........
             S: +OK mrose's maildrop has 2 messages (320 octets)

2) Уметь обрабатывать корректный ответ сервера

спасибо, направление понял
...
Рейтинг: 0 / 0
22.01.2013, 13:41
    #38119579
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
pationSputnickблин, наверно правильней еще добавить -
catch(Exception e).....
наверно правильней книжек почитать

да, очень многие "жители" sql.ru славятся такими советами.

Спасибо.
...
Рейтинг: 0 / 0
22.01.2013, 15:20
    #38119819
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
Sputnickpationпропущено...

наверно правильней книжек почитать

да, очень многие "жители" sql.ru славятся такими советами.

Спасибо.

ничего не могу с собой поделать, когда когда вижу человека не читающего книжек
...
Рейтинг: 0 / 0
22.01.2013, 16:17
    #38119926
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException"
pationSputnickпропущено...


да, очень многие "жители" sql.ru славятся такими советами.

Спасибо.

ничего не могу с собой поделать, когда когда вижу человека не читающего книжек

Тогда и я вам дам совет:

В своей подписи напишите: "Господа Читайте книги, там все есть"

А чтобы засветиться кидайте сообщение типа: "Удачи Вам или Я желаю Вам счастья"

и человеку приятно и он прочел подпись про необходимость чтения книг ;-)

Сори за оффтоп. Будьте счастливы!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / принимаю мыло, а мне Выдано исключение типа "OpenPOP.POP3.PopServerLockException" / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]