Интернет

Тема в разделе ".NET", создана пользователем f.7, 16 янв 2007.

  1. f.7

    f.7 Гость

    Нет сил больше бороться - взываю о помощи...., вот не получается 2 задачи.
    1) Надо программно проверить есть ли интернет(ну тоесть подключён ли текущий ПК к инету).
    2) Как принять и отправить почту???
    Я конечно понимаю что мне скажут погуглить или что-то похожее, но всё что я находил работало некоректно....
    Буду очень благодарен за подробное обяснение, и/или исходники, которые корректно работают...
     
  2. mr_ST

    mr_ST Гость

    1) Смотря что понимать под "есть ли интернет", возможно вам будет достаточно попинговать набор некоторых сайтов (типа microsoft.com, google.com, yahoo.com) Решение не самое лучшее, т.к. в случае если сайты будут лежать то это для программы означает отсутствие инета. Посему нужно пинговать набор сайтов и если хотя бы один опингуется то все ОК (в качестве пингуемых сайтов можно использовать IP адреса корневых DNS серверов). Другая проблема что на firewall пинг может быть и закрыт.

    2) Смотри в хелпе SmtpClient класс (только .NET 2.0) это для отправить. С принять сложнее т.к. придется реализовывать соответствующий протокол.
     
  3. Pasha

    Pasha Гость

    Если "есть интернет" == "есть хоть какая-то сеть", то можно использовать Microsoft.VisualBasic.Devices.Network.IsAvailable из Microsoft.VisualBasic.dll или IsNetworkAlive из sensapi.dll.
     
  4. f.7

    f.7 Гость

    Спасибо за быстроотреагированные ответы, даже не ожидал ;) .
    но опять задам вопрос...
    1)*********************************
    Вот этот код отправляет письмо:


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

    namespace ConsoleApplication4
    {
    class Program
    {
    static void Main(string[] args)
    {
    FileInfo f = new FileInfo(@"C:\temp.txt");
    StreamWriter writer = f.CreateText();
    writer.WriteLine("Current OS: {0}", Environment.OSVersion);
    writer.Close();
    try
    {
    MailMessage message = new MailMessage(

    //*******************************************************************************
    "Sviksi@mail.ru",//В эту строку можно вписать адрес отправителя
    //*******************************************************************************

    "Fold@mail.ru",
    "Subject",
    "Hello");
    Attachment data = new Attachment(@"C:\temp.txt");
    message.Attachments.Add(data);
    SmtpClient client = new SmtpClient("smtp.mail.ru");
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
    MessageBox.Show("1");
    }
    catch (Exception e)
    {
    Console.WriteLine(e.StackTrace);
    MessageBox.Show("0");
    }
    }
    }
    }

    Обратите внимание на строку которая выделена //***** с верху и с низу, так вот если туда вписать адрес "F.7@mail.ru", то выдаёт ошибку, в чем может быть дело?
    2)*********************************
    Впринципе подойдет и пинг сайтов, но плизззз выкините код как это сделать?????
     
  5. mr_ST

    mr_ST Гость

    1) Какую ошибку? Разве на mail.ru без авторизации можно работать с smtp?
    2) См. класс Ping :)
     
  6. f.7

    f.7 Гость

    Вот эту ошибку:
    System.Net.Mail.SmtpException: Bad sequence of commands. The server response was
    : Administrative prohibition -- authorization required. Users in your domain ar
    e not allowed to send email without authorization. See http://www.mail.ru/pages
    /help/261.html for details.
    at System.Net.Mail.DataCommand.CheckResponse(SmtpStatusCode statusCode, Strin
    g serverResponse)
    at System.Net.Mail.DataCommand.Send(SmtpConnection conn)
    at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressColl
    ection recipients, String deliveryNotify, SmtpFailedRecipientException& exceptio
    n)
    at System.Net.Mail.SmtpClient.Send(MailMessage message)
    at ConsoleApplication4.Program.Main(String[] args) in C:\Documents and Settin
    gs\Aleksey\Desktop\ConsoleMail\ConsoleMail\Program.cs:line 29

    На mail.ru без авторизации работать вроде можно с smtp, как я уже говорил дело в адресе, наверное чтото не нравиться в адресе точка!!!!!
     
  7. mr_ST

    mr_ST Гость

    Уважаемый, там же черным по английскому написано "Administrative prohibition -- authorization required. Users in your domain are not allowed to send email without authorization. See http://www.mail.ru/pages/help/261.html for details."
     
  8. f.7

    f.7 Гость

    Всё понял, спасибо за ответ, просто я в английском не очень шарю!!!!
     
  9. Real-Mulik

    Real-Mulik Гость

    Скажите плиз как поставить хук на появление инета? В частности на доступ к оперделенному адресу..
     
Загрузка...

Поделиться этой страницей