RobScripta Ответов: 2

Отправка gmail с помощью моего доменного имени из C# winforms


Привет,

У меня есть свой собственный сервер, и я также использовал его для отправки и получения почты. После взлома во второй раз я сдался и зарегистрировался на gmail, обрабатывающий мою электронную почту, используя свой собственный домен.
У меня также включена двухэтапная проверка, если вас дважды взломали, это делает вас осторожным.

Я хочу отправлять электронные письма из своих приложений c# windows forms, поэтому я настроил специальные пароли для приложений. Тем не менее Google жалуется на безопасное соединение или клиент не проверен (требуется аутентификация 5.5.1).

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

Спасибо за ваши мысли.

Что я уже пробовал:

var fromAddress = new MailAddress("myemail@mydomain.toplevel", "From Name");
var toAddress = new MailAddress("myemail@mydomain.toplevel", "To Name");
const string fromPassword = "abcdefghijklmnop"; //app specific password
const string subject = "test";
const string body = "This is a test!!";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
    Timeout = 20000
};
using (var message = new MailMessage(fromAddress , toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

Gerry Schmitz

Какое отношение к этому имеет Google? Я использую SMTP2GO. Только я и они.

RobScripta

SMTP2GO имеет бесплатный план на 1000 писем в месяц. Я получаю от 1000 до 2000 писем в месяц. Их план 20.000/месяц составляет $14, в то время как я в настоящее время плачу € 4,= для google.

Maciej Los

I've set up the app specific passwords. 

Дайте угадаю... вы храните пароль к учетной записи gmail в коде - в виде обычного текста, я прав?
Если да, то не удивляйтесь. Его довольно легко получить из исполняемого файла...

RobScripta

Вы правы, что получить пароль из IL с помощью ildasm потрясающе просто, поэтому я создал веб-сервис для извлечения паролей и хранения их локально в защищенной строке. Так что это не мой вопрос.

2 Ответов

Рейтинг:
2

RobScripta

Спасибо за ваши мысли. Я нашел этот очень полезный комментарий от Рошана Пармара в нескольких местах, и я попытался следовать ему:
решение 2 для случая 2:(см. https://stackoverflow.com/a/9572958/52277) включите двухфакторную аутентификацию (она же двухэтапная проверка) , а затем сгенерируйте пароль для конкретного приложения. Использовать новый пароль для проверки подлинности по протоколу SMTP.
Но, к сожалению, это не работает.

Рейтинг:
0

F-ES Sitecore

Выполнили ли Вы различные шаги настройки?

SMTP relay: маршрутизация исходящих сообщений, отличных от Gmail, через Google - G Suite Admin Help[^]

Одна вещь, которую я сразу вижу, заключается в том, что вы не используете smtp-сервер, подробно описанный в документации, поэтому я бы сначала убедился, что вы тщательно изучили документацию, и, очевидно, что вы подписаны на службу, которая позволяет ретранслировать (отправлять "из" вашего собственного домена).


RobScripta

Спасибо за ваши отзывы. Однако, когда я читаю ссылку, я думаю, что речь идет о перенаправлении SMTP-сервера на сервер Gmail (pc-->smtp server-->gmail server-->recipient server).
Однако маршрут будет компьютер--&ГТ;в Gmail сервера--&ГТ;сервера получателя.
Я действительно пытался настроить gsuite для ретрансляции, но я думаю, что не смогу: мы рекомендуем вам настроить свой почтовый сервер так, чтобы он представлял уникальный идентификатор (например, ваше доменное имя или имя вашего почтового сервера) в команде HELO или EHLO в соединениях SMTP relay, которые ваш сервер делает с Google. Избегайте использования общих имен, таких как "localhost" или "smtp-relay.gmail.com," что иногда может привести к проблемам с ограничениями DoS.
Еще одна проблема заключается в том, что я хочу отправлять несколько десятков напоминаний по электронной почте каждое утро и: максимальное количество общих получателей, разрешенных для каждого клиента в 10-минутном окне, примерно в 9 раз превышает количество пользовательских лицензий в Вашем аккаунте G Suite.
Поскольку у меня есть только одна лицензия пользователя, мне придется распространять их примерно на час!

Я действительно рад обратной связи, даже если я не смогу заставить ее работать, я все равно чему-то научусь!