Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Почта Добавлено: 13.05.07 14:36  

Автор вопроса:  D o c a l  | Web-сайт: www.doc-source.pp.net.ua/ | ICQ: 408802757 
Народ может хто имеет робочий пример отправления и приема почти скиньте мне на мило пожалуста
Буду очень благодарен

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #1 Добавлено: 13.05.07 16:19
У тебя диалап? А поиск гуглей по VBNet.Ru не подходит?

Ответить

Номер ответа: 2
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #2
Добавлено: 13.05.07 18:10
Как отправлять я нашол а как принимать не очень

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 13.05.07 18:19
Ну ненадо ссказки.. не искал..

ищи по ключевым VB+POP3

Ответить

Номер ответа: 4
Автор ответа:
 Gogic



Вопросов: 38
Ответов: 121
 Профиль | | #4 Добавлено: 13.05.07 23:46
Или в MSDN справку по MAPI.

Ответить

Номер ответа: 5
Автор ответа:
 Dark



Вопросов: 4
Ответов: 41
 Профиль | | #5 Добавлено: 14.05.07 04:53
Нах мапи в .NET! Есть стороние классы для работы с pop и еще много чем другим, например Indy.Sockets.dll. Она много с чем умеет работать, в том числе и с POP, к сожалению весит 2,6 Mb. Если тягать с собой dll влом могу предложить собственный класс для работы с POP3, правда немного кривой и написанный на C#.
P.S. POP3 - это для получения почты :).


using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.IO;

namespace POP_Client
{
    class POP_Client
    {
        private TcpClient m_TcpClient;
        private NetworkStream m_NetStream;
        private StreamReader m_Reader;
        private string log;
        private string msg;

        public void Connect(string host, string login, string password)
        {
            // POP3 у нас на 110 порту
            m_TcpClient = new TcpClient(host, 110);
                // инициализация
                m_NetStream = m_TcpClient.GetStream(); // сетевой поток
                m_Reader = new StreamReader(m_TcpClient.GetStream()); // ассоциируем с ним ридер потока
                //Теперь POP3-сервер ожидает авторизацию
            //Выполняем авторизацию
            string result;
            //result = SendCmd(string.Format("PASS {0}", password));            
            result = SendCmd(string.Format("USER {0}", login));
            result = SendCmd(string.Format("PASS {0}", password));
            return;
        }

        private string SendCmd(string cmd)
        {
            string result = "";
            string m_Data = cmd + System.Environment.NewLine;
            byte[] szData;
            try
            {
                szData = System.Text.Encoding.ASCII.GetBytes(m_Data.ToCharArray()); //Преобразуем в строку ASCII
                m_NetStream.Write(szData, 0, szData.Length);
                result = m_Reader.ReadLine();
                log = "Result: " + result + "\r\n" + "Command: " + cmd + "\r\n" + log;
            }
            catch { }
            return result;
        }

        public int CheckMessages()
        {
            int count = 0,p;            
            string result;
            result = SendCmd("STAT";);
            result = SendCmd("LIST";);
            p = result.IndexOf(" ", 4);            
            count=int.Parse(result.Substring(4,p-3));
            if(count==0)
                result = SendCmd("QUIT";);
            return count;
        }

        public string RetrieveSubject(int index)
        {
            string result, str;
            bool flag = false;
            result = SendCmd("RETR "+index);
            result = SendCmd(";DELE " + index);
            result = SendCmd("QUIT";);
            msg = "";
            str = m_Reader.ReadLine();
            while (str!=null)
            {
                if (str.Length > 7)
                    if (str.Substring(0, 8).ToLower() == "subject:";)
                    {
                        result = str;
                    }
                if (str=="Content-Transfer-Encoding: base64";)
                    flag = true;
                str = m_Reader.ReadLine();
                if (flag && str!="" && str!="\r\n";)
                    msg += str+"\r\n";
            }
            result = result.Substring(8);
            result = result.TrimStart(" ".ToCharArray());
            return result;
        }

        public string GetMsg()
        {
            int p;
            string m = msg;
            msg = "";
            p = m.IndexOf("=\r\n";);
            if (p == -1)
            {
                p = m.IndexOf("==\r\n";);
                p++;
            }
            if (p <=0)
            {
                p = m.IndexOf("+\r\n";);
            }
            m = m.Substring(0, p + 1);
            m = Encoding.UTF8.GetString(Convert.FromBase64String(m));
            return m;
        }

        public string GetLog()
        {
            string l=log;
            log="";
            return l;
        }

    }
}

Ответить

Номер ответа: 6
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #6 Добавлено: 14.05.07 08:39
POP3 - протокол простой на самом деле. Я свои ящики проверяю с помощью телнета, когда времени мало и надо просто узнать сколько там писем.
Делаю так:
[Win] + [R]
cmd[Enter]
telnet pop3.mail.ru 110[Enter]
сервер отвечает +OK
USER zagzag2003[Enter]
сервер отвечает +OK
PASS XеXеXеXe =)[Enter]
сервер отвечает +OK
STAT
сервер отвечает +OK и выдает кол-во писем и их суммарный объем в байтах
QUIT
сервер отвечает +OK и выгоняет

для получения № первых строк письма по его индексу - команда TOP номер_письма №
для получения всего письма - команда RETR номер_письма
для удаления письма - команда DELE номер_письма (тут я могу ошибаться)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам