当前位置: 首页 > news >正文

网站资料上传教程游戏广告联盟平台

网站资料上传教程,游戏广告联盟平台,互联网平台排名,用蜗牛做logo的网站在VB.NET中通过代码发送邮件时,确实会遇到邮箱服务的身份认证(Authentication)要求。特别是微软Outlook/Hotmail等服务,已经逐步禁用传统的“基本身份验证”(Basic Authentication),转而强制要求…

在VB.NET中通过代码发送邮件时,确实会遇到邮箱服务的身份认证(Authentication)要求。特别是微软Outlook/Hotmail等服务,已经逐步禁用传统的“基本身份验证”(Basic Authentication),转而强制要求使用更安全的 OAuth 2.0 认证

下面我将为你说明如何处理身份认证问题,并提供代码示例。

⚠️ 重要提醒:认证方式的变化

微软已多次宣布并推迟禁用基本身份验证的时间线。根据我目前看到的信息,最新的计划是:

  • 2026年3月1日开始逐步淘汰通过SMTP AUTH发送电子邮件的基本身份验证。

  • 2026年4月30日预计将完全停用此方法9。
    尽管目前基本认证可能仍有效,但从长远和稳定的角度出发,强烈建议为新项目或重要应用直接采用OAuth 2.0认证

下面的表格汇总了不同邮箱类型推荐使用的认证方式和关键参数:

邮箱类型推荐认证方式SMTP 服务器端口 (推荐)加密方式注意事项
Outlook/HotmailOAuth 2.0smtp.office365.com587STARTTLS需在Azure AD注册应用并配置权限。未来必须使用OAuth19。
基本认证 (过渡)smtp.office365.com587STARTTLS目前可能有效,但会被逐步淘汰。需在账户设置中启用SMTP认证并可能使用应用密码。
QQ邮箱基本认证 (应用密码)smtp.qq.com465 或 587SSL 或 STARTTLS需在邮箱设置中开启SMTP服务并获取授权码(即应用密码),不要在代码中直接使用你的QQ密码。
163邮箱基本认证 (应用密码)smtp.163.com465 或 994SSL需在邮箱设置中开启SMTP服务并获取授权码(即应用密码),不要在代码中直接使用你的邮箱密码。

下面是针对不同认证方式的代码示例。

🔐 方法一:使用 OAuth 2.0 认证 (Outlook/Hotmail 推荐)

这是微软推荐的、面向未来的方式,但设置相对复杂。

前期准备(在Azure Portal中配置):
  1. 注册应用程序:访问 Azure Portal (https://portal.azure.com),在“Azure Active Directory”中注册一个新应用程序。

  2. 添加客户端密码:在应用的“证书和密码”部分,创建一个新的客户端密码,并妥善保存其(稍后代码中会用到)。

  3. 配置API权限:在应用的“API权限”中,添加 SMTP.Send 权限(属于 Office 365 Exchange Online),并代表你的组织授予管理员同意

VB.NET 代码示例 (使用 MailKit 库)

.NET Framework 内置的 SmtpClient 对 OAuth 2.0 的支持不佳,推荐使用更现代且支持更好的 MailKit 库。你可以通过NuGet包管理器安装 MailKit 和 MimeKit


Imports MailKit.Net.Smtp
Imports MailKit.Security
Imports MimeKit
Imports System.Threading' 注意:此示例需要安装 MailKit 和 MimeKit NuGet 包。
Public Async Function SendEmailViaOAuthAsync() As TaskDim message As New MimeMessage()message.From.Add(New MailboxAddress("你的名字", "your_email@outlook.com")) ' 你的Outlook邮箱message.To.Add(New MailboxAddress("收件人名字", "recipient@example.com")) ' 收件人邮箱message.Subject = "这是一封测试邮件"message.Body = New TextPart("plain") With {.Text = "这是一封使用VB.NET和OAuth 2.0发送的测试邮件。"}Using client As New MailKit.Net.Smtp.SmtpClient()Try' 连接到Outlook SMTP服务器Await client.ConnectAsync("smtp.office365.com", 587, SecureSocketOptions.StartTls)' 请注意:这里的密码是你在Azure应用中创建的“客户端密码”,不是你的邮箱密码!Dim oauth2 As New SaslMechanismOAuth2("your_email@outlook.com", "你的客户端密码")' 进行OAuth 2.0认证Await client.AuthenticateAsync(oauth2)' 发送邮件Await client.SendAsync(message)Console.WriteLine("邮件发送成功!")Catch ex As ExceptionConsole.WriteLine("发送失败: " & ex.ToString())FinallyAwait client.DisconnectAsync(True)End TryEnd Using
End Function

🔓 方法二:使用基本认证 (传统方式,可能逐步淘汰)

对于QQ、163等邮箱,目前通常仍使用基本认证,但需使用应用专用密码(授权码)。对于Outlook/Hotmail,此方式未来会失效。

VB.NET 代码示例 (使用 System.Net.Mail.SmtpClient)
Imports System.Net.Mail
Imports System.NetPublic Sub SendEmailViaBasicAuth()Using smtpClient As New SmtpClient("smtp.office365.com") ' 对于Outlook。QQ邮箱用 "smtp.qq.com", 163邮箱用 "smtp.163.com"smtpClient.Port = 587 ' Outlook端口。QQ也可用587或465,163常用465或994smtpClient.Credentials = New NetworkCredential("your_email@outlook.com", "你的密码或授权码") ' 对于Outlook,如果开启了双因素认证,这里可能需要应用密码。对于QQ/163,此处填授权码。smtpClient.EnableSsl = True ' 启用加密连接。对于端口465,有时可能需要其他配置。Dim mailMessage As New MailMessage()mailMessage.From = New MailAddress("your_email@outlook.com")mailMessage.To.Add("recipient@example.com")mailMessage.Subject = "VB.NET 基本认证测试"mailMessage.Body = "这是一封使用基本认证发送的测试邮件。"TrysmtpClient.Send(mailMessage)Console.WriteLine("邮件发送成功!")Catch ex As ExceptionConsole.WriteLine("发送失败: " & ex.ToString())End TryEnd Using
End Sub

⚠️ 发送邮件时的其他注意事项

除了认证方式,以下几点也需要留意:

  • 端口与加密:不同的邮箱服务商可能支持不同的端口和加密方式(SSL/TLS)。如果默认端口不行,可以尝试其他常用端口。

  • 授权码/应用密码:对于QQ、163等邮箱,为了安全,务必在邮箱设置中开启SMTP服务并获取专用的授权码,不要在代码中直接使用你的邮箱登录密码。

  • 服务器限制:免费邮箱通常对每日发信数量、频率有限制,大量发送需注意。

  • 垃圾邮件风险:注意邮件内容格式,避免被收件方服务器误判为垃圾邮件。对于大批量发件人,微软等提供商还要求配置SPF、DKIM、DMARC等记录以提高发信信誉和成功率7。

💎 总结与建议

在VB.NET中发送邮件,处理认证的关键是:

  1. 认清邮箱类型:确认你使用的是Outlook/Hotmail还是国内邮箱(QQ、163)。

  2. 选择认证方式

    • Outlook/Hotmail首选 OAuth 2.0(尽管设置稍复杂,但一劳永逸)。暂时可测试基本认证,但需知它终将失效。

    • QQ/163等国内邮箱:使用基本认证,但密码处填写你在邮箱设置中获取的授权码

  3. 使用合适的库和参数:对于OAuth 2.0,推荐使用 MailKit 库。对于基本认证,System.Net.Mail.SmtpClient 基本够用,但请注意微软也已建议使用 MailKit 等替代方案。

希望这些信息能帮助你顺利地在VB.NET中实现邮件发送功能。

http://www.dtcms.com/a/613182.html

相关文章:

  • 排名好的网站关键词优化企业网站如何做优化推广
  • 还能电子商务网站建设php网站开发编程软件
  • 网站开发有哪几个阶段百度快速收录3元一条
  • 网站免费网站免费优化优化建站之星模板的使用
  • 关于建设殡葬网站的报告范文wordpress开源吗
  • 网站建设成立领导小组许昌网站制作公司
  • 福建建设职业管理中心网站win7优化极致性能
  • 登录建设厅网站的是企业锁吗wordpress第一篇文章id
  • 网站盈利方式天河建网站的公司
  • 郑州 (网站建设宜昌网站建设设计
  • 住房建设厅官方网站html插件代码大全
  • 网站目录命名做营销的网站推广
  • 东莞优化网站建设厦门建网站做优化
  • 建站系统源代码ps模板网站推荐
  • 网站用ps下拉效果怎么做的网站建设项目报告
  • 个人公司网站搭建公司的创建
  • 中国企业网站建设网站风格特点
  • 值得浏览的国外网站怎么搭建网站环境配置文件
  • 如何做网站弹窗在线工具seo
  • 建站技巧成都网站建设需多少钱
  • 钱包网站建设策划wordpress模板上传
  • 网站开发周志微信小程序商家入口
  • 嘉兴网站制作软件青岛营销型网站制作
  • 邢台企业手机网站建设怎么利用源码做网站
  • 云服务器放网站快么安徽网站制作
  • 企业建站系统博敏网站建设
  • 公司内部网站的作用手机网站规划
  • 中国建设工程造价协会网站饮食中心网站建设方案
  • 长沙市师德师风建设网站公司建网站需要多少钱
  • 上传wordpress网站网站建设展板