从c#windows应用程序发送电子邮件

时间:2014-06-20 13:30:55

标签: c#

我有一个在服务器上运行的windows c#应用程序,在每天通过任务调度程序运行后,它会生成一个日志文件,现在我的问题是我可以在运行完毕后向我的办公室ID发送一封电子邮件没有来自地址的应用程序,需要将日志文件附加到电子邮件中。

private void button1_Click(object sender, EventArgs e)
        { 
   MailMessage mail = new MailMessage("eg@king.co.uk", "user@hotmail.com");
        SmtpClient client = new SmtpClient();
        client.Port = 25;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Host = @"100.100.0.1";- fake host
        mail.Subject = "this is a test email.";
        mail.Body = "this is my test email body";
        client.Send(mail);
}

2 个答案:

答案 0 :(得分:1)

您的代码和问题中存在许多问题。

您的问题是"如何向我的办公室ID发送电子邮件"。目前尚不清楚这意味着什么。您的意思是说您有公司的电子邮件地址,例如shruti@mycompany.com,并且您想向其发送电子邮件吗?

必须有一个来自地址。地址不一定存在。例如,您的地址为donotreply@mycompany.com

您的问题包括通过Gmail服务器发送电子邮件的代码:client.Host = "smtp.google.com";。这使得正在阅读您问题的每个人都认为您正在尝试通过Google发送电子邮件,这有特定的要求。如果情况并非如此,那么请将您的问题更新为明确。例如,如果您使用公司托管的电子邮件服务器,则可以使用smtp.mycompany.com

因此,如果问题实际上是关于如何将文本文件附加到您的电子邮件中,请按以下步骤操作:

private void button1_Click(object sender, EventArgs e)
    { 
    MailMessage mail = new MailMessage("donotreply@yourcompany.com", "user@hotmail.com");
    SmtpClient client = new SmtpClient();
    client.Port = 25;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Host = "smtp.mycompany.com";
    mail.Subject = "this is a test email.";
    mail.Body = "this is my test email body";
    mail.Attachments.Add(new Attachment("log.txt"));
    client.Send(mail);  
    }

请注意,我删除了UseDefaultCredentials=false,因为您没有指定备用凭据。

答案 1 :(得分:0)

如果您知道每日日志消息的格式或名称,则可以在创建MailMessage后使用以下代码:

MailMessage mail = new MailMessage("you@yourcompany.com", "user@hotmail.com");
mail.Attachments.Add(new Attachment("filepath.log"));