Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 5.00
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
#1

Ошибка отправки почты - C#

05.07.2011, 14:53. Просмотров 3356. Ответов 16
Метки нет (Все метки)

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


C#
1
2
3
4
5
6
7
8
 SmtpClient Smtp = new SmtpClient("smtp.gmail.com", 25);
 Smtp.Credentials = new NetworkCredential("user", "pass");
 MailMessage Message = new MailMessage();
 Message.From = new MailAddress("user@gmail.com");
 Message.To.Add(new MailAddress("user@i.ua")); 
 Message.Subject = "Проверка"; 
 Message.Body = "Hello";
 Smtp.Send(Message);
Пробовал и так:
C#
1
Smtp.Credentials = new NetworkCredential("user@gmail.com", "pass");
Почта существует пробовал и через Mail та же ошибка пробовал и в 2005 и в 2010 студи ? в чём проблема ?

Добавлено через 3 минуты
забыл исправить ака 2 робочий и для тестов
http://www.cyberforum.ru/csharp-net/thread102017.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2011, 14:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка отправки почты (C#):

Отправка почты: проверка на то, что в данный момент нет другой отправки
Вот сам код, осталось доработать! Первое куда письмо придет. Второе откуда...

Выходит ошибка при попытке отправки файла по TCP
using System; using System.IO; using System.Net; using System.Net.Sockets;...

Отправка почты и ошибка "путь содержит недопустимые знаки"
Подскажите пожалуйста, пытаюсь сделать отправку почты с адресов которые у меня...

Ошибка "Процесс не может получить доступ к файлу" после отправки письма
Здравствуйте! (Вопрос уже был задан, но промахнулась с темой) Следующий...

Отправка почты
Нужно осуществить отправку данных через почту. Использую такой код:...

16
Etrimus
384 / 351 / 54
Регистрация: 23.05.2010
Сообщений: 716
05.07.2011, 15:30 #2
У своего объекта SmtpClient сделай свойство EnableSsl равным true и попробуй, должно заработать...
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
05.07.2011, 17:13  [ТС] #3
та же ошибка
0
Etrimus
384 / 351 / 54
Регистрация: 23.05.2010
Сообщений: 716
05.07.2011, 18:03 #4
Не знаю, почему у вас не работает. Взял ваш код, включил SSL, сделал новый проект и вставил туда свои реквизиты. Отправил из Gmail в Yandex - всё пришло.

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
            SmtpClient Smtp = new SmtpClient("smtp.gmail.com", 25);
            Smtp.Credentials = new NetworkCredential("test@gmail.com", "testPass");
            Smtp.EnableSsl = true;
            MailMessage Message = new MailMessage();
            Message.From = new MailAddress("test@gmail.com");
            Message.To.Add(new MailAddress("testYandex@yandex.ru"));
            Message.Subject = "Проверка";
            Message.Body = "Hello";
            Smtp.Send(Message);
Замени на свои данные test@gmail.com, testPass, testYandex@yandex.ru.
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
05.07.2011, 18:25  [ТС] #5
да очень странно тут то нечего сложного нету главное раньше у меня работало а щас не в какую, нашел уже кучу тем по почте даже ваш пост с примером MailClient и пишет тоже самое
C#
1
Smtp.Send(Message);
Сбой при отправке сообщения электронной почты.
0
Etrimus
384 / 351 / 54
Регистрация: 23.05.2010
Сообщений: 716
05.07.2011, 18:48 #6
Файрволлы, антивирусы?...
Ну и как вариант - может попробовать создать ещё учётнуюб запись почты?...
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
05.07.2011, 19:18  [ТС] #7
перепробовал ))) уже яндекс маил гугл i.ua антивирус потушыл . Может в студии что то збилось ?
0
umnick_kh
307 / 244 / 44
Регистрация: 06.12.2010
Сообщений: 527
05.07.2011, 21:01 #8
Попробуйте использовать порт 587 вместо 25.
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
05.07.2011, 21:04  [ТС] #9
Цитата Сообщение от umnick_kh Посмотреть сообщение
Попробуйте использовать порт 587 вместо 25.
я уже перебрал все варианты с портами и почтами думаю ошибка не в коде 95% уверенности.
0
Lavios
63 / 63 / 8
Регистрация: 27.01.2011
Сообщений: 250
05.07.2011, 21:18 #10
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
85
86
87
88
public static string MailServer;
            public static string SMTP_Account;
            public static string SMTP_Password;
            public static string FromAddr;
            public static string AddRecipient;
            public static string BodyText;
            public static string AddAttachment;
            public static string Subject;
            public static int MailPort;
            public static int SMTP_AuthMode;
 
       
 
            public static string Run()
            {
                
                MailMessage message = new System.Net.Mail.MailMessage();
                SmtpClient client = new SmtpClient();
                try
                {
                    message.From = new MailAddress(FromAddr);
                }
                catch (FormatException ex)
                {
                    return("Не верный формат адресса <От кого>");
                }
                try
                {
                    message.To.Add(new MailAddress(AddRecipient));
                }
                catch (FormatException ex)
                {
                    return("Не верный формат адресса <Кому>");
                }
                    message.Subject = Subject;
                    message.Body = BodyText;
                    client = new SmtpClient(MailServer, MailPort);
 
 
                    
                        if (SMTP_AuthMode == 1)
                        {
                            
                            client.Credentials = new System.Net.NetworkCredential(SMTP_Account, SMTP_Password);
                   
                        }
                        else
                        {
                            client.Credentials = new System.Net.NetworkCredential("", "");
                        }
                   
 
                    message.BodyEncoding = System.Text.Encoding.UTF8;
                    message.IsBodyHtml = true;
 
                    if (AddAttachment != "")
                    {
                        message.Attachments.Add(new Attachment(AddAttachment));
                    }
 
                    try
                    {
                        client.Send(message);
                        
                    }
                    catch (SmtpException ex)
                    {
                        if (ex.Message == "Сбой при отправке сообщения электронной почты.")
                            return ("Не верный сервер или порт");
                        if (ex.Message == "Почтовый ящик недоступен. Ответ сервера: non-local recipient verification failed")
                            return ("Почтовый ящик несуществует");
                        else
                            return ("Неверный пользователь или пароль");
 
                    }
               
 
                message.Dispose();
                client.Dispose();
                return("Отправлено");
 
               
 
 
 
 
 
            }
Добавлено через 19 секунд
Рабочий 100%
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
05.07.2011, 21:48  [ТС] #11
тот же код по сути только более напичкан проверил на всякий та же ошибка .
0
Lavios
63 / 63 / 8
Регистрация: 27.01.2011
Сообщений: 250
05.07.2011, 22:09 #12
Цитата Сообщение от Midnayt Посмотреть сообщение
тот же код по сути только более напичкан проверил на всякий та же ошибка .
проверяйте порты, например у моего провайдера убит 25 порт

Добавлено через 2 минуты
Для отправки с Gmail используйте 465 порт + добавте две строки
C#
1
2
Smtp.UseDefaultCredentials = true;
                        Smtp.EnableSsl = true;
Добавлено через 1 минуту
Еще попробуйте вместо "smtp.gmail.com" - это ssl://smtp.gmail.com, опять же с портом 465

Добавлено через 8 минут
Если не чего не выйдет проверяй порты - путем использования командной строки...команды - telnet smtp.gmail.com 25
telnet smtp.gmail.com 465
telnet smtp.gmail.com 2525
telnet smtp.gmail.com 587
telnet smtp.mail 25

и т.д.=)

Добавлено через 46 секунд
если не сможешь установить соединение проблема в портах...Т.е. файрфол, провайдер, еще что то
0
Midnayt
57 / 57 / 7
Регистрация: 07.12.2009
Сообщений: 320
Завершенные тесты: 1
05.07.2011, 23:02  [ТС] #13
telnet smtp.mail 25
telnet smtp.gmail.com 587
telnet smtp.gmail.com 25
Пишет ready
0
Lavios
63 / 63 / 8
Регистрация: 27.01.2011
Сообщений: 250
06.07.2011, 11:51 #14
а остальные?

Добавлено через 12 часов 42 минуты
А почтовые клиенты типо outlook у вас работают?
0
Ice_and_Fire
483 / 293 / 36
Регистрация: 22.06.2011
Сообщений: 929
02.08.2011, 14:19 #15
Такая же ошибка. Telnet'ом отправляю сообщения.
Вопрос решил используя пространство имен System.Web.Mail (с добавлением ссылки на System.Web). Все работает. Выдает предупреждение о том что использую устаревший класс, но там все есть - и корректная кириллица без перекодировок и вложения и все плюшки
0
egik
12 / 12 / 2
Регистрация: 11.04.2011
Сообщений: 76
17.05.2012, 11:31 #16
нельзя ли подробнее описать все переменные а то я вот не пойму что тут прописывать
MailServer=?
SMTP_Account=то что прописывается до @ например"egik"?
SMTP_Password=вроде как пароль например "12345"?
FromAddr =от кого например egik@mail.ru ?
AddRecipient =кому например eg@yandex.ru ?;
BodyText = тут вроде сам текст сообщения?
AddAttachment=прикрепленные файлы?
Subject=?
MailPort=?
SMTP_AuthMode=?
может что не правильно понял
и еще у меня VS2008 выдает ошибку client.Dispose(); --- System.Net.Mail.SmptClient не содержит определения для "Dispose"
0
Lavios
63 / 63 / 8
Регистрация: 27.01.2011
Сообщений: 250
17.05.2012, 12:56 #17
02.08.2011, 14:19
0
17.05.2012, 12:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 12:56
Привет! Вот еще темы с решениями:

Рассылка почты
Здраствуйте! Нужна ваша помощь! Нужно реализовать рассылку писем из...

Проблема с отправкой почты
Не могу передать почту в общем,в инете масса тем по этому поводу,но не...

Отправка почты с вложением
Есть необходимость выполнить отправку сообщения с прикрепленным файлом. Скрипт...

gmail отправка почты
всем привет поиском ответа не нашел - не ругайтесь вопрос - как отправить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru