отправка локальных писем на горячую почту - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть следующий код, который вызывает «Хост SMTP не был указан».Есть идеи, почему это происходит?Большое спасибо

var mailMessage = new System.Net.Mail.MailMessage();
mailMessage.To.Add(new MailAddress("myemail@hotmail.co.uk"));
mailMessage.From = new MailAddress("atest@test.com");

mailMessage.Subject = "my test subject";
mailMessage.Body = "my test body";
mailMessage.IsBodyHtml = true;

var smtpClient = new SmtpClient { EnableSsl = true };
object userState = mailMessage;
smtpClient.Send(mailMessage);

Я попробовал следующее сейчас, и все равно не получается

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

            var mail = new MailMessage("test@example.com", "me@gmail.com", "hello", "there");
            mail.Body = "Hello";
            mail.Subject = "hi";
            client.Send(mail);

Ответы [ 5 ]

2 голосов
/ 20 февраля 2012

Поскольку вы не указали свойство smtpClient.Host .

1 голос
/ 20 февраля 2012
var client = new SmtpClient(smtpServer, 25)
{
    Credentials = new NetworkCredential(userName, password),
    EnableSsl = false
};

MailMessage mail = new MailMessage(sender, receiver, head, body);
client.Send(mail);

Вы должны указать свой SMTP-сервер, как показано выше.


Или вы можете указать его в файле web.config.

<mailSettings>
  <smtp>
    <network 
       host="server" 
       port="portNumber"
       userName="username"
       password="password" />
  </smtp>
</mailSettings>
1 голос
/ 20 февраля 2012

Похоже, вы не определили сервер для отправки, если только вы не сделали этого в конфигурации вашего приложения.

<system.net>
        <mailSettings>
            <smtp>
                <network host="127.0.0.1" port="25"/>
            </smtp>
        </mailSettings>
    </system.net>

Вам нужно указать свои настройки, а не локальные, которые я использовал впример выше.

0 голосов
/ 20 февраля 2012

Включить SSL перед отправкой сообщения

smtpClient.EnableSsl=true;
0 голосов
/ 20 февраля 2012

Вы добавили mailSettings в web.config? Пожалуйста, проверьте ссылку ниже по Скотту.

http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx

...