2013-04-24 105 views
3

试图通过SMTP服务器发送电子邮件,但我在smtp.Send(mail);代码段中收到了不起眼的错误。通过SMTP服务器以编程方式发送电子邮件

服务器端,中继IP地址看起来是正确的。抓我的脑袋想我失踪的事。

MailMessage mail = new MailMessage(); 
mail.To.Add(txtEmail.Text); 

mail.From = new MailAddress("[email protected]"); 
mail.Subject = "Thank you for your submission..."; 
mail.Body = "This is where the body text goes"; 
mail.IsBodyHtml = false; 

SmtpClient smtp = new SmtpClient(); 
smtp.Host = "mailex.company.us"; 
smtp.Credentials = new System.Net.NetworkCredential 
    ("AdminName", "************"); 

smtp.EnableSsl = false; 


if (fileuploadResume.HasFile) 
{ 
    mail.Attachments.Add(new Attachment(fileuploadResume.PostedFile.InputStream, 
     fileuploadResume.FileName)); 
} 

smtp.Send(mail); 
+0

txtEmail是什么样的?您是否尝试过在内部硬编码电子邮件地址以查看它是否发送? – 2013-04-24 17:07:16

+0

我假设你已经在配置文件中设置了正确的SMTP设置? – keyboardP 2013-04-24 17:08:52

+0

您必须在代码中指定“smtp.UseDefaultCredentials = false;”或者在web.config邮件设置中。另外,你指定什么端口? – 2013-04-24 17:10:14

回答

2

尝试在发送前添加。

供参考,这是我的标准邮件功能:

public void sendMail(MailMessage msg) 
{ 
    string username = "username"; //email address or domain user for exchange authentication 
    string password = "password"; //password 
    SmtpClient mClient = new SmtpClient(); 
    mClient.Host = "mailex.company.us"; 
    mClient.Credentials = new NetworkCredential(username, password); 
    mClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
    mClient.Timeout = 100000; 
    mClient.Send(msg); 
} 

通常被称为是这样的:

MailMessage msg = new MailMessage(); 
msg.From = new MailAddress("fromAddr"); 
msg.To.Add(anAddr); 

if (File.Exists(fullExportPath)) 
{ 
    Attachment mailAttachment = new Attachment(fullExportPath); //attach 
    msg.Attachments.Add(mailAttachment); 
    msg.Subject = "Subj"; 
    msg.IsBodyHtml = true; 
    msg.BodyEncoding = Encoding.ASCII; 
    msg.Body = "Body"; 
    sendMail(msg); 
} 
else 
{ 
    //handle missing attachments 
} 
0
  var client = new SmtpClient("smtp.gmail.com", 587); 
      Credentials = new NetworkCredential("sendermailadress", "senderpassword"), 
      EnableSsl = true 
      client.Send("sender mail adress","receiver mail adress", "subject", "body"); 
      MessageBox.Show("mail sent"); 
0

这是阿迪力的回答格式化C#:

public static class Email 
{ 
    private static string _senderEmailAddress = "sendermailadress"; 
    private static string _senderPassword = "senderpassword"; 

    public static void SendEmail(string receiverEmailAddress, string subject, string body) 
    { 
     try 
     { 
      var client = new SmtpClient("smtp.gmail.com", 587) 
      { 
       Credentials = new NetworkCredential(_senderEmailAddress, _senderPassword), 
       EnableSsl = true 
      }; 
      client.Send(_senderEmailAddress, receiverEmailAddress, subject, body); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("Exception sending email." + Environment.NewLine + e); 
     } 
    } 
} 
相关问题