//--- text/plain ----------------------------------------
MIME_Entity entity_text_plain = new MIME_Entity();
MIME_b_Text text_plain = new MIME_b_Text(MIME_MediaTypes.Text.plain);
entity_text_plain.Body = text_plain;
//普通文本邮件内容,如果对方的收件客户端不支持HTML,这是必需的
string plainTextBody = "如果你邮件客户端不支持HTML格式,或者你切换到“普通文本”视图,将看到此内容";
if (!string.IsNullOrEmpty(SystemConfig.Default.PlaintTextTips))
{
plainTextBody = SystemConfig.Default.PlaintTextTips;
}
text_plain.SetText(MIME_TransferEncodings.QuotedPrintable, Encoding.UTF8, plainTextBody);
multipartAlternative.BodyParts.Add(entity_text_plain);
//--- text/html -----------------------------------------
string htmlText = mailInfo.Content;//"<html>这是一份测试邮件,<img src=https://www.jb51.net/article/\"cid:test.jpg\">来自<font color=red><b>LumiSoft.Net</b></font></html>";
MIME_Entity entity_text_html = new MIME_Entity();
MIME_b_Text text_html = new MIME_b_Text(MIME_MediaTypes.Text.html);
entity_text_html.Body = text_html;
text_html.SetText(MIME_TransferEncodings.QuotedPrintable, Encoding.UTF8, htmlText);
multipartAlternative.BodyParts.Add(entity_text_html);
//--- application/octet-stream -------------------------
foreach (string attach in mailInfo.Attachments)
{
multipartMixed.BodyParts.Add(Mail_Message.CreateAttachment(attach));
}
foreach (string imageFile in mailInfo.EmbedImages)
{
MIME_Entity entity_image = new MIME_Entity();
entity_image.ContentDisposition = new MIME_h_ContentDisposition(MIME_DispositionTypes.Inline);
string fileName = DirectoryUtil.GetFileName(imageFile, true);
entity_image.ContentID = BytesTools.BytesToHex(Encoding.Default.GetBytes(fileName));
MIME_b_Image body_image = new MIME_b_Image(MIME_MediaTypes.Image.jpeg);
entity_image.Body = body_image;
body_image.SetDataFromFile(imageFile, MIME_TransferEncodings.Base64);
multipartMixed.BodyParts.Add(entity_image);
}
#endregion
return msg;
}
如果使用普通的账号方式发送SMTP邮件,主要代码如下所示,其中可以看出是利用了命令方式一步步和服务器进行交互的。
复制代码 代码如下: