.net SMTP发送Email 更新(可带附件)

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 = "[email protected]";
                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 protected]");
                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);

//如果希望通过匿名邮件发送 则

 var smtp = new SmtpClient
                {
                    Host = "serverName",
                    Port = 25,     //匿名发送端口
                    EnableSsl = false,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    //Credentials = new NetworkCredential(fromAddress, fromPassword)
                };



SMTP发送的Content,Title根据Static.html自动生成

var emailContent = File.ReadAllText(HttpContext.Current.Server.MapPath("/EmailContent/EmailContent.html")).Replace('\r', ' ').Replace('\n', ' ');

Replace('\r', ' ').Replace('\n', ' ');很重要,否则会报错。、

 MailMessage email = new MailMessage(fromAddress, "[email protected]");
            email.Subject = emailContent.Substring(0, emailContent.IndexOf('<')); ;
            email.IsBodyHtml = true;
            email.Body = emailContent.Substring(emailContent.IndexOf('<')).Replace("$USERNAME", userName).Replace("$POINT", point);


/EmailContent/EmailContent.html  里面

Email Title!
<div>
    <div>
        <h1>Congratulation!</h1>
        <h5>$USERNAME $POINT</h5>
    </div>
</div>


你可能感兴趣的:(.net SMTP发送Email 更新(可带附件))