#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);