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

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, и выдает ошибку, т.е. блок не завершается. Если же ставить другие порты, то ошибку выдает сразу же.
Очень странное поведение.
Кто-нибудь сталкивался? Может у кого есть другой код?
 
Судя по коду, функции зеннопостера тут вообще не используются, кроме получения значения переменных. Скорее всего, изменения произошли в mail.ru. Хоть бы скрин ошибки приложил, телепатическими способностями не все обладают.
 
  • Спасибо
Реакции: ks1989
Судя по коду, функции зеннопостера тут вообще не используются, кроме получения значения переменных. Скорее всего, изменения произошли в mail.ru. Хоть бы скрин ошибки приложил, телепатическими способностями не все обладают.
Да я бы с радостью, но какой-то особенной ошибки там нет, просто Действие не выполнено.
upload_2017-4-29_12-59-30.png

Попробовал с Яндексом, та же история.
 
Через 587 порт отправилось письмо на mail.ru, на яндексе тоже должно работать. С 465 и 25 портами не работает, т.к. класс SmtpClient использует немного устаревший метод подключения к серверу.
 
  • Спасибо
Реакции: banancheg и crn
Через 587 порт отправилось письмо на mail.ru, на яндексе тоже должно работать. С 465 и 25 портами не работает, т.к. класс SmtpClient использует немного устаревший метод подключения к серверу.
Спасибо, прокатило!
 
mail.ru закинул меня в спам. Хотя отправляю почту "своим" юзерам, а не спамлю куда попало. Отлично.
 
Год назад написал свой код 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, и выдает ошибку, т.е. блок не завершается. Если же ставить другие порты, то ошибку выдает сразу же.
Очень странное поведение.
Кто-нибудь сталкивался? Может у кого есть другой код?


А как подключить прокси к этому коду?
 
Еще работает? У меня пишет

Выполнение действия 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.
 

Вложения

  • 2018-01-26_222704.jpg
    2018-01-26_222704.jpg
    14,4 KB · Просмотры: 873
// куда отправлять
var toEmailString = project.Variables["toEmail"].Value;

Кто подскажет, как впихнуть сразу несколько мыл в переменную "toEmail" ?
пробывал так: 1@mail.ru, 2@mail.ru, 3@mail.ru
так: 1@mail.ru 2@mail.ru 3@mail.ru
и так:
1@mail.ru
2@mail.ru
3@mail.ru

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

а можете дать свой код ? может у меня в коде ошибочка
 
Спасибо, тот же код и у меня, походу в сервере проблема.
 

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