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

时间:2022-03-06 04:01:37

该方式直接保存为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);