我正在使用asp.net 3.5和C#。
我想从asp.net发送邮件,因为我从托管服务提供商处获得了一些详细信息
这些是:
但我无法通过这些详细信息发送邮件,我在web.config文件中进行了以下更改:
<system.net>
<mailSettings>
<smtp>
<network
host="mail.MySite.net"
port="8080"
userName="UserName"
password="Password" />
</smtp>
</mailSettings>
</system.net>
另外,在我正在编写此函数的代码中:
MailMessage mail = new MailMessage("webmaster@mySite.net", "XYZ@gmail.com");
mail.Subject = "Hi";
mail.Body = "Test Mail from ASP.NET";
mail.IsBodyHtml = false;
SmtpClient smp = new SmtpClient();
smp.Send(mail);
但由于邮件发送失败,我收到错误消息。
请让我知道我做错了什么以及我必须做些什么来使其正常工作。
提前致谢。
答案 0 :(得分:2)
您是否需要提供客户凭证?
smp.Credentials = CredentialCache.DefaultNetworkCredentials;
或
smp.Credentials = new NetworkCredential("yourUserID", "yourPassword", "yourDomainName");
此外,您获得的确切异常将非常有用。
请参阅post by Scott Guthrie以获取更多帮助。
答案 1 :(得分:2)
我怀疑端口8080是正确的smtp端口。也许是25号或587号港口。
答案 2 :(得分:1)
通过asp.net发送电子邮件c#并不复杂......我们只知道smtp端口和主机......
MailAddress to = new MailAddress("Email Id");
MailAddress from = new MailAddress("Email Id");
MailMessage mail = new MailMessage(from, to);
mail.Subject = "";
mail.Body = "";
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Credentials = new NetworkCredential(
"Email Id", "Password");
smtp.EnableSsl = true;
smtp.Send(mail);
答案 3 :(得分:1)
不使用SMTP,使用Microsoft.Office.Interop.Outlook添加;参考
Application app = new Application();
NameSpace ns = app.GetNamespace("mapi");
ns.Logon("Email-Id", "Password", false, true);
MailItem message = (MailItem)app.CreateItem(OlItemType.olMailItem);
message.To = "To-Email_ID";
message.Subject = "A simple test message";
message.Body = "This is a test. It should work";
message.Attachments.Add(@"File_Path", Type.Missing, Type.Missing, Type.Missing);
message.Send();
ns.Logoff();
答案 4 :(得分:0)
我的代码与您的代码非常相似,我认为区别在于您需要在SMTP客户端的构造函数中为SMTP服务器提供IP地址。
MailMessage Email = new MailMessage("donotreply@test.com", "receiver@test.com");
Email.Subject = "RE: Hello World.";
Email.Body = "Hello World";
Email.IsBodyHtml = false;
SmtpClient Client = new SmtpClient(SMTP_SERVER); //This will be an IP address
Client.Send(Email);
希望有所帮助! :)
(顺便说一句,我在Winforms,Windows服务和ASP .NET中使用过它。在ASP .NET中,我不需要在aspx页面中提供任何内容。)