MailKit/MimeKit 发送邮件
2024-10-15 19:24:22
MimeKit / MailKit 支持最新的国际化的电子邮件标准,是.NET 中为一个支持完整支持这些标准电子邮件库,最近正式发布了1.0版本。如果你想做所有与的电子邮件相关的事情,看看 MimeKit 和 MailKit。我保证你不会失望,它支持.NET/Mono的所有平台,包括移动电话、平板等.
废话不多说,直接上代码:
using MimeKit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MailKit.Net.Smtp;
using System.IO; namespace NetSmtpClient
{
class Program
{
const string mailFrom = "xxxx@hotmail.com";
const string mailTo = "xxxx@qq.com";
const string mailFromAccount = "xxxx@hotmail.com";
const string mailPassword = "xxxx";
const string path = @"E:\GitHub\TestMailClient\NetSmtpClient\.NETFoundation.png";
static void Main(string[] args)
{
TestSmtpClient(); TestMailKit(); } private static void TestMailKit()
{
var message = new MimeMessage();
message.From.Add(new MailboxAddress("geffzhang", mailFrom));
message.To.Add(new MailboxAddress("geffzhang", mailTo));
message.Subject = string.Format("C#自动发送邮件测试 From geffzhang TO {0}", mailTo); var plain = new TextPart("plain")
{
Text = @"不好意思,我在测试程序,刚才把QQ号写错了,Sorry!"
};
var html = new TextPart("html")
{
Text = @"<p>Hey geffzhang<br>
<p>不好意思,我在测试程序,刚才把QQ号写错了,Sorry!<br>
<p>-- Geffzhang<br>"
};
// create an image attachment for the file located at path
var attachment = new MimePart("image", "png")
{
ContentObject = new ContentObject(File.OpenRead(path), ContentEncoding.Default),
ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
ContentTransferEncoding = ContentEncoding.Base64,
FileName = Path.GetFileName(path)
};
attachment.ContentType.Parameters.Add("GB18030", "name", fileName);
attachment.ContentDisposition.Parameters.Add("GB18030", "filename", fileName)var alternative = new Multipart("alternative"); alternative.Add(plain);
alternative.Add(html);
// now create the multipart/mixed container to hold the message text and the
// image attachment
var multipart = new Multipart("mixed");
multipart.Add(alternative); multipart.Add(attachment);
message.Body = multipart;
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
client.Connect("smtp.live.com", , false);
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2");
// Note: only needed if the SMTP server requires authentication
client.Authenticate(mailFromAccount, mailPassword); client.Send(message); client.Disconnect(true);
}
}
}
}
上面代码是smtp发送代码,这个库还支持POP3, 和 IMAP 等。
最新文章
- React的双向绑定
- Comparison method violates its general contract 关于jdk自带算法问题
- jquery 原理
- const变量赋值报错分析
- hmmer 使用(转载)
- UVALive - 6952 Cent Savings dp
- Linux服务器集群系统(一)--转
- 学习红帽企业版RHEL 6.4的两问
- boost库在windows下的编译和使用
- 转载:MyEclipse启动Tomcat缓慢的原因及解决办法
- C++中顶层const和底层const
- 重启OpenStack服务步骤
- 基于Struts自定义MVC-1
- Oracle 11g RAC 修改各类IP地址
- Hibernate--使用xml配置映射关系
- ajax 图片上传
- ubuntu 16.04 更改默认Python版本
- centos7.4/rehat7.0系统安装
- libdl.so 动态库加载、查找
- php脚本#!/usr/bin/env php写法的好处