C# SMTP邮件发送
⚠ 服务器有可能封禁25端口
特别注意阿里云的《25端口使用服务协议》:
我/我公司承诺并保证TCP 25端口仅用来连接第三方的SMTP服务器,从第三方的SMTP服务器外发邮件。如发现您使用本机IP直接SMTP发送邮件,有权永久性封禁TCP 25端口,并不再提供相关服务。
C# 9.0 控制台应用程序代码
using System;
using System.ComponentModel;
using System.Net.Mail;
using System.Text;
SendEmail("这是一条信息", "哈哈哈哈哈", "752957127@qq.com");
void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
Console.WriteLine("信息发送成功!");
}
void SendEmail(string subject, string body, string toEmail)
{
// 命令行参数必须是SMTP主机
SmtpClient client = new SmtpClient("smtp.qq.com", 587);
string User = "752957127@qq.com";
string PassWord = "xxxx"; // 服务平台获取
client.UseDefaultCredentials = false;
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential(User, PassWord);
// 发送人
MailAddress from = new MailAddress("752957127@qq.com", "林一怂儿", Encoding.UTF8);
// 接收人
MailAddress to = new MailAddress(toEmail);
// 指定邮件内容
MailMessage message = new MailMessage(from, to);
message.Body = body;
message.BodyEncoding = Encoding.UTF8;
// 主题
message.Subject = subject;
message.SubjectEncoding = Encoding.UTF8;
// 设置发送操作结束时回调的方法.
client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
string userState = subject;
client.SendAsync(message, userState);
Console.WriteLine("发送消息...");
}