asp.net электронная почта SmtpMail.SmtpServer.Вставить(0, «»);

#c# #.net #asp.net #email

#c# #.net #asp.net #Адрес электронной почты

Вопрос:

У меня есть asp.net страница, которая отправляет мне электронное письмо.

SmtpMail.SmtpServer.Insert(0, ""); работает нормально.

Что это значит? когда я меняю его на SmtpMail.SmtpServer = "127.0.0.1"; , происходит сбой.

When I say SmtpMail.SmtpServer.Insert(0, "") что именно я устанавливаю в качестве своего SMTP-сервера?

Ответ №1:

На самом деле

 SmtpMail.SmtpServer.Insert(0, ""); 
  

ничего не делает.

SmtpServer свойство имеет тип String, поэтому вы в основном вызываете string .Вставка(int, string), которая не влияет на строку, для которой вы вызываете insert, но возвращает новый экземпляр string с тем, с чем вы пытаетесь вставить.

 SmtpMail.SmtpServer = "google.com";
SmtpMail.SmtpServer =  SmtpMail.SmtpServer.Insert(0, "mail."); 
// now  SmtpMail.SmtpServer will be "mail.google.com"
  

Комментарии:

1. итак, как работает страница? Я имею в виду, что такое мой smtp-сервер? SmtpMail.SmtpServer. Вставить(0, «»); SmtpMail.Отправить (сообщение);

2. Есть ли у вас smtp-сервер, определенный в вашем web.config? когда вы устанавливаете SmtpServer = «127.0.0.1», он переопределяет значение из web.config, но когда вы этого не сделаете и просто сделаете SmtpMail.SmtpServer.Insert(0, ""); , что ничего не дает и оставляет SmtpServer с пустой строкой, он примет значение, определенное в web.config.

3. это еще одна проблема … <Почтовые рассылки> <Метод доставки smtp=»Указанный почтовый каталог»> <Указанный почтовый каталог pickupDirectoryLocation=»c:domainsxxxxwwwrootTest «/> </smtp> </mailSettings> Я записываю на диск, но каким-то образом электронное письмо приходит ко мне и не записывается на диск.

Ответ №2:

Просто чтобы вы знали, SmtpServer устарел. Вы должны использовать SmtpClient вместо этого: http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

 SmtpClient client = new SmtpClient();
//...
MailMessage message = new MailMessage(from, to);
// setup mail properties...

client.Send(message);