Подтвердить что ты не робот

Как настроить параметры smtp в web.config

Я пытаюсь исправить проблему электронной почты с унаследованным веб-сайтом и не иметь доступа к коду (т.е. только скомпилированные файлы). Этот сайт должен размещаться на новом веб-сервере с другим SMTP-сервером.

После декомпиляции битов кода я вижу, что электронные письма отправляются с использованием метода, подобного ниже в фрагменте кода, а smtp задается как smtpMail.SmtpServer = "localhost", но мой новый SMTP-сервер webserver - "relay.tagadab.com", как можно мы можем настроить это в web.config, чтобы localhost принимался за "relay.tagadab.com"

 Imports Microsoft.VisualBasic, System.Web.Mail

Shared Sub SendMail(ByVal ToAdd, ByVal FromAdd, ByVal Message, ByVal Subject)

    Dim msgMail As New MailMessage()

    msgMail.To = ToAdd
    msgMail.From = FromAdd
    msgMail.Subject = Subject
    msgMail.Headers.Add("X-Mailer", "ASP.NET")

    msgMail.BodyFormat = MailFormat.Text
    msgMail.Body = Message
    'SmtpMail.SmtpServer = "mail.the-radiator.com"
    SmtpMail.SmtpServer = "localhost"
    SmtpMail.Send(msgMail)

End Sub

Я добавил этот раздел в свой web.config, но это не имеет значения.

 <system.net>
    <mailSettings>
        <smtp>
            <network host="relay.tagadab.com" port="25" />
        </smtp>
     </mailSettings>
</system.net>
4b9b3361

Ответ 1

Файл Web.Config:

<configuration>
 <system.net>
        <mailSettings>
            <smtp from="[email protected]">
                <network host="smtp.gmail.com" 
                 port="587" 
                 userName="[email protected]" 
                 password="yourpassword" 
                 enableSsl="true"/>
            </smtp>
        </mailSettings>
</system.net>
</configuration>

Ответ 2

У меня недостаточно ответов, чтобы ответить ClintEastwood, и принятый ответ верен для файла Web.config. Добавьте это для разницы кода.

Когда ваши настройки MailSettings установлены на Web.config, вам не нужно ничего делать, кроме нового, вашего SmtpClient и .Send. Он сам находит связь, без ссылки на нее. Вы изменили бы свой С# следующим образом:

SmtpClient smtpClient = new SmtpClient("smtp.sender.you", Convert.ToInt32(587));
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("username", "password");
smtpClient.Credentials = credentials;
smtpClient.Send(msgMail);  

Для этого:

SmtpClient smtpClient = new SmtpClient();
smtpClient.Send(msgMail);

Ответ 3

Установите IIS для пересылки почты на удаленный сервер. Спецификации сильно различаются в зависимости от версии IIS. Для IIS 7.5:

  • Откройте диспетчер IIS
  • При необходимости подключитесь к своему серверу
  • Выберите сервер node; вы должны увидеть параметр SMTP справа в разделе ASP.NET
  • Дважды щелкните значок SMTP.
  • Выберите опцию "Доставить электронную почту на SMTP-сервер" и введите имя своего сервера, учетные данные и т.д.