看到C#中调用Outlook API 发起会议 ,这个完全可以用SMTP方式实现的,下面我的项目中使用的代码: 对于.NET而言,从2.0开始,发邮件已经是一件非常容易的事了。而且新增了一个AlternateView,使用 AlternateView 类可以指定一个电子邮件的不同格式副本。例如,如果您发送 HTML 格式的邮件,您可能希望同时提供邮件的纯文本格式,以防一些收件人使用的电子邮件阅读程序无法显示HTML 内容。 通过使用AlternateView我们就可以实现Exchange 会议邮件的发送。核
通过System.Net.Mail发送邮件,出现错误: System.ArgumentException: The specified string is not in the form required for a subject. at System.Net.Mail.Message.set_Subject(String value) at System.Net.Mail.MailMessage.set_Subject(String value) 通过Reflector代码看到 Sys
smtpClient;
private string password;//发件人密码
/**/
///
发送邮件需要用到System.Net.Mail命名空间下的MailMessage和SmtpClient类,smtp是一种提供可靠且有效的电子邮件传输协议,是建立在FTP文件传输服务上的一种邮件服务 下面封装一个Email类,声明MailMessage和SmtpClient字段: using System; using System.Net.Mail; namespace SK.Framework SmtpClient; public void Dispose() { MailMessage.Dispose(); = new SmtpClient() { Host = host, Port = port Invoke(); email.SmtpClient.SendMailAsync(email.MailMessage); Debug.Log
使用方法很简单和.NET的SmtpClient 差不多,不过比它优雅多了,下面show个代码: using MimeKit; using System; using System.Collections.Generic attachment); message.Body = multipart; using (var client = new MailKit.Net.Smtp.SmtpClient smtpclient = new System.Net.Mail.SmtpClient(); smtpclient.Port = 587; smtpclient.UseDefaultCredentials = false; smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpclient.Host = "smtp.live.com"; smtpclient.EnableSsl = true; smtpclient.Credentials = new
17 //SendMail 18 private void sendMail(MailMessage mail) 19 { 20 SmtpClient smtpClient = new SmtpClient(); 21 smtpClient.EnableSsl = true; 22 smtpClient.Host = "smtp.gmail.com"; 23 smtpClient.Port = 465; 24 smtpClient.Credentials = new NetworkCredential("XX@gmail.com", "pwd"); 25 try 26 { 27 smtpClient.Send
argc, char *argv[]) { QApplication a(argc, argv); // This is a first demo application of the SmtpClient for Qt project // First we need to create an SmtpClient object // We will use the Gmail's smtp server (smtp.gmail.com, port 465, ssl) SmtpClient smtp("smtp.gmail.com", 465, SmtpClient::SslConnection message.addRecipient(new EmailAddress("recipient@host.com", "Recipient's Name")); message.setSubject("SmtpClient 下载地址 https://github.com/bluetiger9/SmtpClient-for-Qt/archive/v1.1.zip
() at System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at System.Net.Mail.SmtpClient.Send(MailMessage message) 2、问题原因 这个问题跟SSL/TLS的协议版本有关系,SSL演化到3.0 但是System.Net.Mail.SmtpClient 不支持较新的TLS协议,具体的TLS协议版本支持情况MSDN上并未找到相关说明 截止到2020年3月受影响的框架版本: .NET Core 2.0 -3.1 .NET Framework 2.0-4.8 目前微软MSDN已经将System.Net.Mail.SmtpClient标记为已过期(obsolete),但源码中并未标记,也并未给出替代实现。 其中SmtpClient也支持TLS协议.
EmailService依赖于一个SMTPClient类来实现邮件发送功能。 通过依赖注入,我们可以将SMTPClient的实例传递给EmailService,而不是让EmailService自己创建SMTPClient:class EmailService { private final SMTPClient smtpClient; public EmailService(SMTPClient smtpClient) { this.smtpClient = smtpClient; } // ...}这样,我们可以在测试时轻松地使用模拟的SMTPClient替换实际的SMTPClient,提高可测试性。
() public SmtpClient(string host) public SmtpClient(string host, int port) 发邮件的方法: public void Send( smtpClient = new SmtpClient(host, port); smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.UseDefaultCredentials = false; smtpClient.Timeout = 100000; smtpClient.Credentials = networkCredential; smtpClient.EnableSsl = enableSsl; return smtpClient; } } 最后在Main方法中, 4、SmtpClient非线程安全类 5、构造的 SmtpClient 实例由外部进行Dispose()。SmtpHelper类只简单提供构造,不做释放操作。
m_smtpClient;
33 ///
msg.IsBodyHtml = false; //设置邮件优先级 msg.Priority = MailPriority.High; SmtpClient client = new SmtpClient(); //设置邮箱账号密码 client.Credentials = new System.Net.NetworkCredential msg.IsBodyHtml = false; //设置邮件优先级 msg.Priority = MailPriority.High; SmtpClient client = new SmtpClient(); //设置邮箱账号密码 client.Credentials = new System.Net.NetworkCredential client = new SmtpClient(); //设置smtp服务器地址 client.Host = "localhost";
IP.ToString(); break; } } SmtpClient_my = new SmtpClient(ip, Port); 2.创建发件人,与收件人邮箱地址. 创建事件 SmtpClient_my.SendCompleted += new SendCompletedEventHandler(SmtpClient_my_SendCompleted); 事件处理函数 void SmtpClient_my_SendCompleted(object sender, AsyncCompletedEventArgs e) { if
smtpClient.UseDefaultCredentials = true; } else { ; } catch { smtpClient.Dispose(); throw; } } /// = BuildClient()) { await smtpClient.SendMailAsync(mail); } } protected void SendEmail(MailMessage mail) { using (var smtpClient = BuildClient()) { smtpClient.Send(mail); } } } 之后我们只需要再调用该EmailSender的SendAsync,填入对应的参数,亲测有效。
anyway,首先就是,你得有一个邮箱账号啦~ 关于 MailKit 很多有经验的.NET老程序员可能会说,发邮件有什么难的,十几年前我们就能用.NET Framework自带的SmtpClient发邮件了 但是,万物皆有始有终,最近我突然发现,SmtpClient 已经被微软标记为弃用: ? 并且微软官方钦点了一个继任者:MailKit,也就是本文要介绍的东西。 它相比.NET自带的SmtpClient,支持更广泛的协议和更现代的电子邮件标准。因此微软官方建议,SmtpClient只用来兼容老应用,如果开发新应用的话,直接使用MailKit。 使用SMTP协议发送邮件 我得到这个好东西以后,第一步就是将使用SmtpClient的老代码迁移到MailKit。因此,我的案例里只使用SMTP这一种协议来发邮件。 端口:587 SSL:支持 以下代码演示了几个步骤: 注册邮件发送成功后的事件 连接服务器 验证账号 发送邮件 断开连接 using (var smtp = new MailKit.Net.Smtp.SmtpClient
details/42011431 最近项目中需要实现发送邮件+添加附件的功能,于是又学习了一下System.Net.Mail.MailMessage和System.Net.Mail.SmtpClient 类,该类用于将电子邮件发送到 SMTP 服务器以便传递 SmtpClient smtp = new SmtpClient(); smtp.Credentials ,简单来说,MailMessage就是我们要发的邮件,SmtpClient的功能是在一定条件下把该邮件发送出去。 System.Net.Mail.SmtpClient类 SmtpClient的属性有: ? 方法有: ? 根据这些属性和方法,您肯定能够理解代码中SmtpClient是如何将电子邮件发送出去了,这里说明几点注意事项: SmtpClient的Host属性,发送不同类型的电子邮件使用的服务器是不同的
RemoteCertificateValidationCallback(ValidateServerCertificate); } SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient smtp.DeliveryMethod = SmtpDeliveryMethod.Network RemoteCertificateValidationCallback(ValidateServerCertificate); } SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient smtp.DeliveryMethod = SmtpDeliveryMethod.Network
string strFromPass, string strto, string strSubject, string strBody) { System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer); client.UseDefaultCredentials = false; client.Credentials
腾讯企业邮箱有一个 配置指南,通过配置指南我们可以得到以下信息: SMTP 发送服务器地址:smtp.exmail.qq.com 端口号:465 SSL:开启 接下来编写 Node.js 代码: const { SMTPClient } = require('emailjs'); const client = new SMTPClient({ user: `${senderEmail}`, password: `
//追加多个收件人邮箱,实现群发 msg.Priority = MailPriority.High; //发送邮件的优先等级 SmtpClient mailClient = new SmtpClient(emailSMTPHost); mailClient.UseDefaultCredentials = false SmtpClient 使用 SSL,则为 true;否则为 false。默认值为 false。