• .NET 邮件发送 SMTP邮件发送


    SMTP(Simple Mail Transfer Protocol)是用于电子邮件传输的规则集,可以从邮件客户端向接收电子邮件服务器发送、中继或转发邮件。发件人可使用SMTP 服务器来执行发送电子邮件的过程。SMTP服务器则是按照这些规则中转电子邮件的服务器。

    IMAP可以理解为收邮件。

    🐧使用QQ邮箱发邮件 

    首先需要设置开启邮箱的SMTP服务

    登录(https://mail.qq.com/)电脑网页版邮箱进入【设置】->【帐户】->【POP3/IMAP/SMTP服务】, 开启或关闭相应服务最后保存更改即可。

    QQ邮箱 POP3 和 SMTP 服务器地址设置如下:

    邮箱POP3服务器(端口995)SMTP服务器(端口465或587)
    qq.compop.qq.comsmtp.qq.com

    SMTP服务器需要身份验证。

    以下是示例代码:

    1. using ConsoleApp1Test;
    2. //xxx
    3. string server = "smtp.qq.com";
    4. string username = "my test email";
    5. string password = "xxx;
    6. string from = "from@qq.com";
    7. string to = "to@qq.com";
    8. string subject = "Test Email";
    9. string content = "This is a test email sent asynchronously.";
    10. bool isHtml = false; // 是否为 HTML 格式
    11. try
    12. {
    13. bool success = await MailHelper. SendMailAsync(server, username, password, from, to, null, subject, content, isHtml);
    14. if (success)
    15. {
    16. Console.WriteLine("邮件发送成功!");
    17. }
    18. else
    19. {
    20. Console.WriteLine("邮件发送失败!");
    21. }
    22. }
    23. catch (Exception ex)
    24. {
    25. Console.WriteLine($"邮件发送出错:{ex.Message}");
    26. }
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Net.Mail;
    5. using System.Text;
    6. using System.Threading.Tasks;
    7. namespace ConsoleApp1Test
    8. {
    9. internal class MailHelper
    10. {
    11. public static async Task<bool> SendMailAsync(string server, string username, string password, string from, string to, string cc, string subject, string content, bool isHtml)
    12. {
    13. try
    14. {
    15. using (var smtp = new SmtpClient(server))
    16. {
    17. smtp.UseDefaultCredentials = false;
    18. smtp.Credentials = new System.Net.NetworkCredential(username, password);
    19. smtp.EnableSsl = true; // 启用加密
    20. smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    21. using (var mail = new MailMessage())
    22. {
    23. mail.From = new MailAddress(from);
    24. mail.To.Add(to);
    25. mail.SubjectEncoding = Encoding.UTF8;
    26. mail.Subject = subject;
    27. mail.IsBodyHtml = isHtml;
    28. mail.BodyEncoding = Encoding.UTF8;
    29. mail.Body = content;
    30. await smtp.SendMailAsync(mail); // 异步发送邮件
    31. }
    32. return true;
    33. }
    34. }
    35. catch (Exception err)
    36. {
    37. // 发送失败时的异常处理
    38. // 可以在此处记录日志
    39. return false;
    40. }
    41. }
    42. }
    43. }

    🐷使用网易邮箱发送邮件

    163网易免费邮

    设置 > POP3/SMTP/IMAP 

    使用网易邮箱发送邮件上述示例类似,只需替换相应的服务器地址、用户名、密码、发件人、收件人、主题、内容等信息即可。

    1. string server = "smtp.163.com";
    2. string username = "f@163.com";
    3. string password = "xxx";
    4. string from = "f@163.com";
    5. string to = "t@qq.com";
    6. string subject = "Test163Email m";
    7. string content = "This is a test email ";
    8. bool isHtml = false; // 是否为 HTML 格式

    运行:

    🐬使用谷歌邮箱发送邮件

    谷歌Gmail邮箱登陆地址:https://mail.google.com


     

    谷歌imap开通 smtp也自动开通 

    https://myaccount.google.com/

    接收邮件 (IMAP) 服务器imap.gmail.com要求 SSL:是端口:993
    发送邮件 (SMTP) 服务器smtp.gmail.com要求 SSL:是要求 TLS:是(如适用)使用身份验证:是SSL 端口:465TLS/STARTTLS 端口:587


    使用谷歌邮箱修改对应的服务器地址、用户名、密码、发件人、收件人、主题、内容等信息即可。

    1. string server = "smtp.gmail.com";
    2. string username = "f@gmail.com";
    3. string password = "xx";
    4. string from = "f@gmail.com";
    5. string to = "t@qq.com";
    6. string subject = "TestSMTPEmail m";
    7. string content = "This is a test email sent using Gmail SMTP.m";
    8. bool isHtml = false; // 是否为 HTML 格式

    运行:

    📮有些免费邮箱对发信量有限制,可使用企业邮,多账号增加发信量。

    END

  • 相关阅读:
    Leetcode: 645.错误的集合 题解【超详细】
    HTML,CSS,JavaScript知识点
    【剑指offer系列】44. 数字序列中某一位的数字
    Qt编写物联网管理平台37-逻辑设计
    95倒计时自律习惯养成计划打卡-day5
    LLVM学习笔记(60)
    安装Java (JDK16)
    计算机毕设(附源码)JAVA-SSM基于的防疫隔离服务系统
    Elasticsearch内存分析
    【历史上的今天】7 月 28 日:Lua 首次在线上运行;苹果停产所有非 iOS 的 iPod;戴尔工作站 400 推出
  • 原文地址:https://blog.csdn.net/lmnotlm/article/details/137800482