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("发送消息...");
}
posted @   林一怂儿  阅读(211)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示