您的位置:首页 > 编程语言

smtp发送带附件的邮件代码分享

2014-11-27 00:00 411 查看
该方式直接保存为HTML文件,也可以是文本文件,其它格式效果不是很好

MailMessage mmsg = new MailMessage();

    mmsg.Subject = "邮件标题";

    mmsg.Body = "邮件内容";

    mmsg.To.Add("accept@qq.com");//接收邮箱

    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简单邮件协议

    System.Net.Mail.SmtpClient sc

        = new System.Net.Mail.SmtpClient();

    sc.Host = "127.0.0.1";//主机地址

    sc.Port = 25;//端口

    //发送邮箱账号和密码

    sc.Credentials =

        new System.Net.NetworkCredential("account", "password");

    //发送邮箱

    mmsg.From = new MailAddress("account@qq.com");

    sc.Send(mmsg);

    //释放流资源

    ms.Close();

    ms.Dispose();

另附上一个.net使用smtp发送带附件邮件的实例

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="**********@gmail.com"/>//Email Address 

<add key="EmailPassword" value="*********"/> //Emial PWD 

<add key="SmtpServer" value="smtp.gmail.com"/> 

<add key="SmtpPort" value="587"/> 

<--带附件版本-> 

var fromAddress = "allenyinj@gmail.com"; 

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, "allen.yin.jun@gmail.com"); 

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: