smtp發(fā)送帶附件的郵件代碼分享

字號:


    該方式直接保存為HTML文件,也可以是文本文件,其它格式效果不是很好
    代碼如下:
    MailMessage mmsg = new MailMessage();
    mmsg.Subject = "郵件標(biāo)題";
    mmsg.Body = "郵件內(nèi)容";
    mmsg.To.Add("接收郵箱
    byte[] bytes = System.Text.Encoding.Default.GetBytes
    (@"<table><tr><td width=150>1234567891234567
    </td><td width=80>12345678</td></tr></table>");
    MemoryStream ms = new MemoryStream(bytes);
    ContentType ct = new ContentType();
    //附件文件類型
    ct.MediaType = MediaTypeNames.Text.Html;
    //附件名稱,可以是其它后綴名
    ct.Name = "附件名稱" + DateTime.Now.ToString() + ".html";
    mmsg.Attachments.Add(new Attachment(ms, ct));
    //SMTP簡單郵件協(xié)議
    System.Net.Mail.SmtpClient sc
    = new System.Net.Mail.SmtpClient();
    sc.Host = "127.0.0.1";//主機(jī)地址
    sc.Port = 25;//端口
    //發(fā)送郵箱賬號和密碼
    sc.Credentials =
    new System.Net.NetworkCredential("account", "password");
    //發(fā)送郵箱
    mmsg.From = new MailAddress("");
    sc.Send(mmsg);
    //釋放流資源
    ms.Close();
    ms.Dispose();
    另附上一個.net使用smtp發(fā)送帶附件郵件的實例
    代碼如下:
    public static void sendEmail(string toAddress, string emailbody)
    {
    var fromAddress = ConfigurationManager.AppSettings["EmailAddress"];
    string fromPassword = ConfigurationManager.AppSettings["EmailPassword"].ToString();
    const string subject = "Job Recommendation";
    var smtp = new SmtpClient
    {
    Host = ConfigurationManager.AppSettings["SmtpServer"].ToString(),
    Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]),
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress, fromPassword)
    };
    using (var message = new MailMessage(fromAddress, toAddress, subject, HttpUtility.HtmlEncode(emailbody)))
    {
    smtp.Send(message);
    }
    }
    <add key="EmailAddress" value=" Address
    <add key="EmailPassword" value="*********"/> //Emial PWD
    <add key="SmtpServer" value="smtp.gmail.com"/>
    <add key="SmtpPort" value="587"/>
    <--帶附件版本->
    var fromAddress = "";
    string fromPassword = "yj1989120";
    const string subject = "CV";
    var smtp = new SmtpClient
    {
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress, fromPassword)
    };
    MailMessage email=new MailMessage(fromAddress, "");
    email.Subject = "INLINE attachment TEST";
    email.IsBodyHtml = true;
    string attachmentPath = "C:\\3.jpeg";
    Attachment inline = new Attachment(attachmentPath);
    inline.ContentDisposition.Inline = true;
    inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
    //inline.ContentId = "1";
    //inline.ContentType.MediaType = "image/png";
    inline.ContentType.Name = Path.GetFileName(attachmentPath);
    email.Attachments.Add(inline);
    email.Body = "test";
    smtp.Send(email);
    email.Dispose();
    //如果沒有路徑,用Stream
    Attachment letter = new Attachment(FileUploadLetter.FileContent, FileUploadLetter.PostedFile.ContentType);
    letter.ContentDisposition.Inline = true;
    letter.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
    //inline.ContentId = "1";
    letter.ContentType.MediaType = FileUploadLetter.PostedFile.ContentType;
    letter.ContentType.Name = Path.GetFileName(FileUploadLetter.PostedFile.FileName);
    letter.Name = Path.GetFileName(FileUploadLetter.PostedFile.FileName);