Каким может быть «более» безопасный доступ к приложению (принадлежащему) почтовому аккаунту Google из C #? - PullRequest
0 голосов
/ 19 января 2019

Context

В последние два года я использовал код C # для отправки электронных писем через свою специальную учетную запись Gmail. Код см. Ниже код выставки # 1 . Мне также пришлось включить менее безопасный доступ к приложениям в интерактивном режиме входа в эту учетную запись Gmail. Недавно я заметил, что gmail отклоняет сообщение электронной почты, которое пытается отправить код C #, и при интерактивном входе в систему сообщало, что кто-то, используя мой пароль, пытался войти в систему, и Google отклонял его. (да, это была моя программа на C #). Так что, похоже, Google автоматически сбрасывает, что позволяет менее безопасный доступ к приложению ...

Вопрос

В любом случае, мне просто интересно, что вместо того, чтобы устанавливать «разрешить менее безопасный», что было бы подходящим «достаточно безопасным» из C #, я уже использую SSL. (примечание: Я просто хочу отправить письмо )

Код выставки # 1

var smtpClient = new SmtpClient(smtp.gmail.com, 587)
{
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential("mygmailaccount@gmail.com", "mypassword")),
    DeliveryMethod = SmtpDeliveryMethod.Network,
    EnableSsl = true
};

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Вы должны использовать Gmail API.Войдите в систему, используя свои учетные данные, и вы получите токен доступа и токен обновления.Теперь вы получаете доступ к учетной записи пользователя по токену доступа, если срок его действия истекает, вы используете обновить токен для обновления токена доступа.Благодаря этому вы не сохраняете учетные данные пользователя в виде простого текста и имеете доступ к хорошо документированному API.

Обзор API Gmail

.NET Quickstart

Доступ к учетной записи таким образом, Google не создает никаких проблем.

0 голосов
/ 19 января 2019

Активируйте двухфакторную аутентификацию, а затем создайте для своей учетной записи Gmail пароли для конкретных приложений, которые ваше приложение может использовать для подключения к SMTP-серверу:

https://support.google.com/mail/answer/185833?hl=en

Когда выподписаться на 2-этапную проверку, мы обычно отправляем вам коды подтверждения.Однако эти коды не работают с некоторыми приложениями и устройствами, такими как Outlook.Вместо этого вам нужно будет авторизовать приложение или устройство при первом его использовании для входа в свою учетную запись Google путем создания и ввода пароля приложения.

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

...