如何在C#中发送带附件的电子邮件

时间:2014-02-27 23:46:33

标签: c# email

我创建了一个更改word文档字段名称的按钮。 现在,我想将该文档发送到具有相同按钮的电子邮件中。我查看了许多教程,但没有一个成功

private void button2_Click(object sender, EventArgs e)
{

    var application = new Microsoft.Office.Interop.Word.Application();
    var document = new Microsoft.Office.Interop.Word.Document();

    document = application.Documents.Add(Template: @"D:\test\test.docx");

    application.Visible = true;

    foreach (Microsoft.Office.Interop.Word.Field fush in document.Fields)
    {
        if (fush.Code.Text.Contains("Name"))
        {
            fush.Select();
            application.Selection.TypeText(txtE.Text);

        }
        else if (fush.Code.Text.Contains("LastName"))
        {

            fush.Select();
            application.Selection.TypeText(txtM.Text);
        }

        document.SaveAs(FileName: @"D:\test\testsave.docx");

    }
}

1 个答案:

答案 0 :(得分:1)

Straight from the horses mouth

public static void CreateMessageWithAttachment(string server)
        {
            // Specify the file to be attached and sent. 
            // This example assumes that a file named Data.xls exists in the 
            // current working directory. 
            string file = "data.xls";
            // Create a message and set up the recipients.
            MailMessage message = new MailMessage(
               "jane@contoso.com",
               "ben@contoso.com",
               "Quarterly data report.",
               "See the attached spreadsheet.");

            // Create  the file attachment for this e-mail message.
            Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
            // Add time stamp information for the file.
            ContentDisposition disposition = data.ContentDisposition;
            disposition.CreationDate = System.IO.File.GetCreationTime(file);
            disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
            disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
            // Add the file attachment to this e-mail message.
            message.Attachments.Add(data);

            //Send the message.
            SmtpClient client = new SmtpClient(server);
            // Add credentials if the SMTP server requires them.
            client.Credentials = CredentialCache.DefaultNetworkCredentials;

      try {
              client.Send(message);
            }
            catch (Exception ex) {
              Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", 
                    ex.ToString() );              
            }
            // Display the values in the ContentDisposition for the attachment.
            ContentDisposition cd = data.ContentDisposition;
            Console.WriteLine("Content disposition");
            Console.WriteLine(cd.ToString());
            Console.WriteLine("File {0}", cd.FileName);
            Console.WriteLine("Size {0}", cd.Size);
            Console.WriteLine("Creation {0}", cd.CreationDate);
            Console.WriteLine("Modification {0}", cd.ModificationDate);
            Console.WriteLine("Read {0}", cd.ReadDate);
            Console.WriteLine("Inline {0}", cd.Inline);
            Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
            foreach (DictionaryEntry d in cd.Parameters)
            {
                Console.WriteLine("{0} = {1}", d.Key, d.Value);
            }
            data.Dispose();
        }