ASP.NET SMTP и Gmail - PullRequest
       11

ASP.NET SMTP и Gmail

0 голосов
/ 05 ноября 2010

Вопрос: Можно ли настроить несколько серверов SMTP или обновить информацию о сервере объектов SMTP во время выполнения?

Описание проблемы: На сайте, на котором я работаю, есть несколько страниц, которые отправляют электронные письма. Наш сайт использует Gmail, поэтому, несмотря на то, что это собственный домен, наша электронная почта отправляется через SMTP-серверы Gmail.

Некоторые электронные письма приходят из системы, а некоторые электронные письма приходят от пользователей из определенных групп. У меня есть SMTP-сервер с электронной почтой администратора для системы, например admin@mysite.com Это работает нормально, и когда я получаю электронное письмо, оно показывается от admin@mysite.com

Одна из наших групп пользователей, назовем ее «groupA», настроила электронную почту на нашем домене, т.е. groupA@mysite.com. Когда я отправляю электронную почту и указываю адрес отправителя для объекта MailMessage как groupA@mysite.com, он все равно показывает на мой взгляд, исходящий от admin@mysite.com, я провел небольшое дальнейшее тестирование, и если я укажу и адрес from, и ReplyTo как groupA@mysite.com, он будет отображаться как From=admin@mysite.com, но когда я выберу в Outlook в ответ он показывает groupA@mysite.com. Я думаю, что Gmail перезаписывает адрес From пользователем SMTP, чтобы предотвратить подделку писем.

Я нашел это: http://www.systemnetmail.com/faq/4.1.aspx, но у меня это не сработает, поскольку всем группам A, B и C необходимо отправлять электронные письма с одной и той же страницы.

1 Ответ

1 голос
/ 05 ноября 2010

Насколько мне известно, невозможно подделать адрес "от" при использовании gmail. Даже если вы используете премьеру приложений и настраиваете псевдонимы адресов, он по-прежнему гласит «отправлено от имени».

Конфигурация system.net.mail в web.config поддерживает только один конфиг вы можете легко создать свою собственную конфигурацию и настроить параметры почтового сервера во время выполнения, например:

SmtpClient smtp = new SmtpClient("smtp.gmail.com");
smtp.Port = 465;
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.UserCredentials = new System.Net.NetworkCredential("yourusername", "yourpassword");    
smtp.Send(mail);

вы, очевидно, можете сохранить имя пользователя и пароль в настройках приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...