2010-09-27 88 views
-2

这在ASP.NET发送错误是电子邮件发送的代码,但它在try块给出了错误:电子邮件使用C#

protected void Page_Load(object sender, EventArgs e) 
{ 
    EmailUtility email = new EmailUtility(); 
    email.Email = new MailMessage(); 
    string body = email.GetEmailTemplate(Server.MapPath("~/EmailTemplates"), "test.htm"); 
    EmailMessageToken token = new EmailMessageToken(); 
    token.TokenName = "$Name$"; 
    token.TokenValue = "Ricky"; 
    EmailMessageTokens tokens = new EmailMessageTokens(); 
    tokens.Add(token); 
    //av.LinkedResources.Add(lr); 
    email.Email.Body = email.ReplaceTokens(body, tokens); 
    email.Email.To.Add(new MailAddress("[email protected]")); 
    email.Email.IsBodyHtml = true; 
    email.Email.From = new MailAddress("[email protected]"); 
    email.Email.Subject = "Hello from bootcamp"; 
    email.SMTP.Host = ConfigurationManager.AppSettings["SMTPServer"]; 
    try 
    { 
     email.SMTP.Send(email.Email); 
     Response.Write("Email sent !"); 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.StackTrace); 
    } 
} 

的错误是:

at System.Net.Mail.IisPickupDirectory.GetPickupDirectory() 
at System.Net.Mail.SmtpClient.Send(MailMessage message) 
at _Default.Page_Load(Object sender, EventArgs e) in c:\Users\Sahil\Desktop\Csharp Email Code(2)\Test website\EmailTest.aspx.cs:line 38 
+3

发布错误的全部内容(即'ex.ToString()')将提高无限回答这个问题的能力。 – Jamiec 2010-09-27 08:00:28

+0

什么是EmailUtility?看起来不是一个框架类。 – 2010-09-27 08:01:12

+0

看起来您正在使用第三方库。在我们提供帮助之前,我们至少需要知道您使用的是什么。 – Carvellis 2010-09-27 08:01:41

回答

0

我要去阅读你的想法,并假设你看到System.Net.Mail.SmtpException: Cannot get IIS pickup directory.谷歌搜索,我看到你的网站配置中需要的SMTP配置的参考。您的邮件服务器可能需要凭据,因此您可能需要如下所示:

<system.net> 
    <mailSettings> 
     <smtp from="fromaddress"> 
     <network defaultCredentials="true" 
       host="smtpservername" port="smtpserverport" 
       userName="username" password="password" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

...在您的web.config中。实质上,配置您的Web应用程序能够与SMTP服务器交谈。

查看该主题了解更多referencehere's relevant MSDN documentation