Есть ли удобный вариант отправки письма с gmail почты

ser222

Client
Регистрация
01.03.2020
Сообщения
217
Благодарностей
10
Баллы
18
Доброго дня всем! Ребят, такая беда, зенка то вставляет текст в форму для отправки письма с gmail почты, то не вставляет, то нажимает кнопку отправить то не нажимает. Как исправить этот геморой, есть другие варианты отправки писем с gmail? Суть в том задествовано будет куча аккаунтов. Может можно как то экшен для email рассылки подключить, ну чтобы аккаунты периодически менялись в автоматическом режиме?

110873
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
978
Благодарностей
521
Баллы
93
Используй упрощенную версию интерфейса gmail
C#:
https://mail.google.com/mail/?ui=html&zy=h
 
Последнее редактирование:

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 183
Баллы
113
Вроде с этой темы метод брал, сейчас работает:
Но там теперь вместо обычного пароля от Gmail акка надо использовать пароль для IMAP ("пароль приложения" создать в акке)

C#:
// с какого email отправлять
var fromEmailString = project.Variables["fromEmail"].Value;
// куда отправлять
var toEmailString = project.Variables["toEmail"].Value;
// логин для авторизации на сервере отправки письма
var login = project.Variables["login"].Value;
// пароль от email, от имени которого отправляем письмо
var password = "h4564564538h";
// сервер, через который отправляем письмо (smtp.gmail.com)
var server = project.Variables["server"].Value;
// порт сервера, через который отправляем письмо (587)
int port;
int.TryParse(project.Variables["port"].Value, out port);
// нужно ли шифровать подключение (например для gmail нужно true)
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();
 
Последнее редактирование:
  • Спасибо
Реакции: kagorec

Кузнец

Client
Регистрация
20.12.2016
Сообщения
181
Благодарностей
32
Баллы
28
Вроде с этой темы метод брал, сейчас работает:
Но там теперь вместо обычного пароля от Gmail акка надо использовать пароль для IMAP ("пароль приложения" создать в акке)

C#:
// с какого email отправлять
var fromEmailString = project.Variables["fromEmail"].Value;
// куда отправлять
var toEmailString = project.Variables["toEmail"].Value;
// логин для авторизации на сервере отправки письма
var login = project.Variables["login"].Value;
// пароль от email, от имени которого отправляем письмо
var password = "h4564564538h";
// сервер, через который отправляем письмо (smtp.gmail.com)
var server = project.Variables["server"].Value;
// порт сервера, через который отправляем письмо (587)
int port;
int.TryParse(project.Variables["port"].Value, out port);
// нужно ли шифровать подключение (например для gmail нужно true)
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();
у гмаил же IMAP закрыли
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 183
Баллы
113
у гмаил же IMAP закрыли
Нет, они его просто отключили по старому методу как я описал выше. А если создать отдельный пароль приложения, то все ок, только что проверил в зенке:
1693520172421.png 1693520087327.png

Справка гугл: Как входить в аккаунт с помощью паролей приложений
И там у меня включено 2FA и "пароль приложений" (IMAP-пароль) создан:
1693520730886.png
 
Последнее редактирование:
  • Спасибо
Реакции: Кузнец

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