Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > отправление email


Автор: afanp 6.4.2010, 19:41
Пытаюсь отправить сообщение , в итоге получаю вот такое сообщение об ошибке : 
Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.7.0 Must issue a STARTTLS command first. l12sm7966033fgb.27
Код

 MailAddress from = new MailAddress("from");
            MailAddress to = new MailAddress("to");
            MailMessage mail = new MailMessage(from, to);
            mail.Subject = "123";
            mail.Body = "hello";
            System.Net.Mail.SmtpClient Smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");
            Smtp.Credentials = new System.Net.NetworkCredential("email", "pass");
            Smtp.Send(mail);

Насколько я верно понимаю, в Smtp.Credentials надо указать адрес и пароль емайла, с адреса которого хотим отправить? 
В windows подключил соответствующую службу
в ystem.Net.Mail.SmtpClient Smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com"); вторым параметром добавил адрес порта - 465, в итоге программа повисает  smile 

Автор: CasperSC 6.4.2010, 20:57
Попробуй что нибудь с этим классом намудрить http://narod.ru/disk/19460125000/%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%20%D1%87%D0%B8%D1%81%D1%82%D0%BE%20%D0%B2%20%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B5%20windows-1251.rar.html

Вообще я не понял, какая у тебя там ошибка, но у меня с этого smtp клиента не отправлялись письма из-за того, что в имени компьютера присутствуют русские символы

Автор: Fortnox 7.4.2010, 09:52
afanp, порт нужно указать 587. С 465 smtp не работает.

Автор: Dobermann 7.4.2010, 10:31
Код

            MailMessage msg = new MailMessage();
            msg.From = new MailAddress("[email protected]");
            msg.To.Add("[email protected]");
            msg.Subject = "test";
            msg.Body = "test";

            SmtpClient smtp = new SmtpClient("smtp.gmail.com");
            smtp.Credentials = new NetworkCredential(username, password);
            smtp.EnableSsl = true;

            try
            {
                smtp.Send(msg);
                return true;
            } catch(Exception ex)
            {
                return false;
            }


Автор: demon87 7.4.2010, 10:35
Лови рабочий код
Код

 private void write_mes(string smtp, int port, string login, string pass, string ot, string komy, string theme, string mes,string files)
        {
            //Авторизация на SMTP сервере
            SmtpClient Smtp = new SmtpClient(smtp, port); //Сервер и порт
            Smtp.Credentials = new NetworkCredential(login, pass); //Логин и пароль

            //Формирование письма
            MailMessage Message = new MailMessage();
            Message.From = new MailAddress(ot); //От кого
            Message.To.Add(new MailAddress(komy));//Кому
            Message.Subject = theme; //Тема
            Message.Body = mes; //Сообщение

            //Прикрепляем файл
            Attachment attach = new Attachment(files, MediaTypeNames.Application.Octet);

            // Добавляем информацию для файла
            ContentDisposition disposition = attach.ContentDisposition;
            disposition.CreationDate = System.IO.File.GetCreationTime(files);
            disposition.ModificationDate = System.IO.File.GetLastWriteTime(files);
            disposition.ReadDate = System.IO.File.GetLastAccessTime(files);

            Message.Attachments.Add(attach);
            //Отправка
            Smtp.Send(Message);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            write_mes("server", 25, "login", "password", "adres_otpr", "adres_poluchatela", "thema", "msq", "C:\my.txt");
        }

Автор: RLZ 18.5.2010, 00:05
Проблема решилась, надо внимательней читать документацию smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)