Отправка почты

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Год назад написал свой код c#, отправляющий почту через mail.ru, все прекрасно работало без сбоев.
Сейчас вытащил из архива свой проект, и отправка почты почему-то не работает. Не понятно, произошли ли изменения в ProjectMaker, или в mail.ru.
Код такой.
----------------------------------------------------------------------------------------------
// с какого email отправлять
var fromEmailString = project.Variables["fromEmail"].Value;
// куда отправлять
var toEmailString = project.Variables["toEmail"].Value;
// логин для авторизации на сервере отправки письма
var login = project.Variables["login"].Value;
// пароль от email, от имени которого отправляем письмо
var password = project.Variables["password"].Value;
// сервер, через который отправляем письмо
var server = project.Variables["server"].Value;
// порт сервера, через который отправляем письмо
int port;
int.TryParse(project.Variables["port"].Value, out port);
// нужно ли шифровать подключение (например для gmail нужно)
bool encryptConnection;
bool.TryParse(project.Variables["encryptedConnection"].Value, out encryptConnection);
// текст письма
var messageText = project.Variables["messageBody"].Value;
// заголовок письма
var messageSubject = project.Variables["messageSubject"].Value;
// файл, который нужно приложить, если ничего не нужно прикладывать, оставляем переменную пустой
//var fileToAttach = project.Variables["fileToAttach"].Value;

// Формирование реквизитов письма
var fromAddress = new System.Net.Mail.MailAddress(fromEmailString, fromEmailString);
var toAddress = new System.Net.Mail.MailAddress(toEmailString, toEmailString);
// создаем подключение к почтовому серверу
var smtp = new System.Net.Mail.SmtpClient {
Host = server,
Port = port,
EnableSsl = encryptConnection,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential(login, password)
};
// создаем письмо
var message = new System.Net.Mail.MailMessage(fromAddress, toAddress) {
Subject = messageSubject,
Body = messageText,
IsBodyHtml = false,
};
// если у нас есть вложение, то добавляем его
/*if (!string.IsNullOrEmpty(fileToAttach))
{
var attach = new System.Net.Mail.Attachment(fileToAttach);
message.Attachments.Add(attach);
}
*/
smtp.Send(message);
message.Dispose();
--------------------------------------------------------------------------------------------------------
сервер - smtp.mail.ru
порты ставил разные - 25, 2525, 587, 465.
Причем когда ставишь 465 порт, ProjectMaker думает секунд 30, и выдает ошибку, т.е. блок не завершается. Если же ставить другие порты, то ошибку выдает сразу же.
Очень странное поведение.
Кто-нибудь сталкивался? Может у кого есть другой код?
 

freeman

Client
Регистрация
31.07.2010
Сообщения
130
Благодарностей
138
Баллы
43
Судя по коду, функции зеннопостера тут вообще не используются, кроме получения значения переменных. Скорее всего, изменения произошли в mail.ru. Хоть бы скрин ошибки приложил, телепатическими способностями не все обладают.
 
  • Спасибо
Реакции: ks1989

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Судя по коду, функции зеннопостера тут вообще не используются, кроме получения значения переменных. Скорее всего, изменения произошли в mail.ru. Хоть бы скрин ошибки приложил, телепатическими способностями не все обладают.
Да я бы с радостью, но какой-то особенной ошибки там нет, просто Действие не выполнено.
upload_2017-4-29_12-59-30.png

Попробовал с Яндексом, та же история.
 

freeman

Client
Регистрация
31.07.2010
Сообщения
130
Благодарностей
138
Баллы
43
Через 587 порт отправилось письмо на mail.ru, на яндексе тоже должно работать. С 465 и 25 портами не работает, т.к. класс SmtpClient использует немного устаревший метод подключения к серверу.
 
  • Спасибо
Реакции: banancheg и crn

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Через 587 порт отправилось письмо на mail.ru, на яндексе тоже должно работать. С 465 и 25 портами не работает, т.к. класс SmtpClient использует немного устаревший метод подключения к серверу.
Спасибо, прокатило!
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
mail.ru закинул меня в спам. Хотя отправляю почту "своим" юзерам, а не спамлю куда попало. Отлично.
 

ks1989

Пользователь
Регистрация
17.08.2016
Сообщения
76
Благодарностей
0
Баллы
6
Год назад написал свой код c#, отправляющий почту через mail.ru, все прекрасно работало без сбоев.
Сейчас вытащил из архива свой проект, и отправка почты почему-то не работает. Не понятно, произошли ли изменения в ProjectMaker, или в mail.ru.
Код такой.
----------------------------------------------------------------------------------------------
// с какого email отправлять
var fromEmailString = project.Variables["fromEmail"].Value;
// куда отправлять
var toEmailString = project.Variables["toEmail"].Value;
// логин для авторизации на сервере отправки письма
var login = project.Variables["login"].Value;
// пароль от email, от имени которого отправляем письмо
var password = project.Variables["password"].Value;
// сервер, через который отправляем письмо
var server = project.Variables["server"].Value;
// порт сервера, через который отправляем письмо
int port;
int.TryParse(project.Variables["port"].Value, out port);
// нужно ли шифровать подключение (например для gmail нужно)
bool encryptConnection;
bool.TryParse(project.Variables["encryptedConnection"].Value, out encryptConnection);
// текст письма
var messageText = project.Variables["messageBody"].Value;
// заголовок письма
var messageSubject = project.Variables["messageSubject"].Value;
// файл, который нужно приложить, если ничего не нужно прикладывать, оставляем переменную пустой
//var fileToAttach = project.Variables["fileToAttach"].Value;

// Формирование реквизитов письма
var fromAddress = new System.Net.Mail.MailAddress(fromEmailString, fromEmailString);
var toAddress = new System.Net.Mail.MailAddress(toEmailString, toEmailString);
// создаем подключение к почтовому серверу
var smtp = new System.Net.Mail.SmtpClient {
Host = server,
Port = port,
EnableSsl = encryptConnection,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential(login, password)
};
// создаем письмо
var message = new System.Net.Mail.MailMessage(fromAddress, toAddress) {
Subject = messageSubject,
Body = messageText,
IsBodyHtml = false,
};
// если у нас есть вложение, то добавляем его
/*if (!string.IsNullOrEmpty(fileToAttach))
{
var attach = new System.Net.Mail.Attachment(fileToAttach);
message.Attachments.Add(attach);
}
*/
smtp.Send(message);
message.Dispose();
--------------------------------------------------------------------------------------------------------
сервер - smtp.mail.ru
порты ставил разные - 25, 2525, 587, 465.
Причем когда ставишь 465 порт, ProjectMaker думает секунд 30, и выдает ошибку, т.е. блок не завершается. Если же ставить другие порты, то ошибку выдает сразу же.
Очень странное поведение.
Кто-нибудь сталкивался? Может у кого есть другой код?

А как подключить прокси к этому коду?
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
68
Баллы
28
Еще работает? У меня пишет

Выполнение действия CSharp OwnCode Mailbox unavailable. The server response was: SMTP is available only with SSL or TLS connection enabled.

Подключи к яндексу через минуту выходит
Выполнение действия CSharp OwnCode The operation has timed out.
 

Вложения

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
// куда отправлять
var toEmailString = project.Variables["toEmail"].Value;

Кто подскажет, как впихнуть сразу несколько мыл в переменную "toEmail" ?
пробывал так: [email protected], [email protected], [email protected]
так: [email protected] [email protected] [email protected]
и так:
[email protected]
[email protected]
[email protected]

отправка успешна только на последнее мыло.
это ваще возможно?
 

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
630
Благодарностей
539
Баллы
93

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
хм, а где же тогда собака зарыта. У меня только на последнее шлет
правда пробую слать через виртуальный хостинг, но одно же шлет
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
630
Благодарностей
539
Баллы
93
хм, а где же тогда собака зарыта. У меня только на последнее шлет
правда пробую слать через виртуальный хостинг, но одно же шлет
С чего шлете ? С паблик серверов ? (mail yandex и прочие)
Может у них там какие ограничения стоят
 

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
С чего шлете ? С паблик серверов ? (mail yandex и прочие)
Может у них там какие ограничения стоят
Свой хостинг, свои ящики.

а можете дать свой код ? может у меня в коде ошибочка
 

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
Спасибо, тот же код и у меня, походу в сервере проблема.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)