C# SmtpClient 类无法使用 gmail 发送电子邮件

2023-11-30

我在使用 Gmail 帐户发送电子邮件时遇到问题。我正在拔头发。

相同的设置在 Thunderbird 中运行良好。

这是代码。我也尝试过 465 端口,但没有成功。

SmtpClient ss = new SmtpClient("smtp.gmail.com", 587);
ss.Credentials = new NetworkCredential("username", "pass");
ss.EnableSsl = true;
ss.Timeout = 10000;
ss.DeliveryMethod = SmtpDeliveryMethod.Network;
ss.UseDefaultCredentials = false;

MailMessage mm = new MailMessage("[email protected]", "[email protected]", "subject here", "my body");
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
ss.Send(mm);

这是错误

SMTP 服务器需要安全连接,或者客户端未经过身份验证。服务器响应是:5.5.1 需要身份验证。了解更多信息,请访问

这是堆栈跟踪

   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
   at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at email_example.Program.Main(String[] args) in C:\Users\Vince\Documents\Visual Studio 2008\Projects\email example\email example\Program.cs:line 23
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

你不会相信是什么解决了我的问题。

凭证属性

ss.Credentials = new NetworkCredential("username", "pass");

必须在之后声明

ss.UseDefaultCredentials = false;

所以最终的工作代码清单是

SmtpClient ss = new SmtpClient("smtp.gmail.com", 587);
ss.EnableSsl = true;
ss.Timeout = 10000;
ss.DeliveryMethod = SmtpDeliveryMethod.Network;
ss.UseDefaultCredentials = false;
ss.Credentials = new NetworkCredential("username", "pass");

MailMessage mm = new MailMessage("[email protected]", "[email protected]", "subject here", "my body");
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
ss.Send(mm);

这是一个错误吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# SmtpClient 类无法使用 gmail 发送电子邮件 的相关文章

  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 在 HKCR 中创建新密钥有效,但不起作用

    我有以下代码 它返回 成功 但使用两种不同的工具使用搜索字符串 3BDAAC43 E734 11D5 93AF 00105A990292 搜索注册表不会产生任何结果 RegistryKey RK Registry ClassesRoot C
  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 即使没有异步,CallContext.LogicalGetData 也会恢复。为什么?

    我注意到CallContext LogicalSetData LogicalGetData不按照我期望的方式工作 内部设置的值async方法得到恢复即使没有异步或任何类型的线程切换 无论如何 这是一个简单的例子 using System u
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • Android 卡牌游戏,需要帮助才能启动

    我刚刚开始从事android开发 我想做一种基于卡牌的游戏 我只是在寻找关于如何开始的建议 我知道我必须制作菜单布局和视图 然后使用其中的 Intent 进入主游戏视图 我的症结是 将会有一副纸牌 这将是一个固定的数字 所以我想我可以将每张
  • 如何使用 PHAsset 从文件中获取 NSData

    我的路径有文件 file var mobile Media DCIM 100APPLE IMG 0197 mov 但是当我尝试这段代码时 NSError error NSData data NSData dataWithContentsOf
  • 如何在不同的mysql服务器上更新另一个表时自动更新一个表?

    假设我有两个数据库 db1 和 db2 分别位于不同的 mysql 服务器 A 和 B 上 我想每6小时检查一次 db2 中的 table1 是否有任何更新 然后 db1 中的 table1 将自动更新 我如何使用触发器或 cron 作业来
  • 更改 ANR(应用程序无响应)对话框的自定义对话框 (Android)

    我正在编写一个应用程序启动器 如主屏幕应用程序 我想知道是否可以拦截某些应用程序在 5 秒内没有响应时出现的默认对话框 我想要的是 启动器将显示另一个对话框 而不是显示默认的警报对话框 我在谷歌上搜索了一段时间 但没有找到任何东西 谁能告诉
  • 为什么git分支不显示任何内容?

    我正在使用 github 开发一个存储库 当我执行时git branch 我的屏幕上没有显示任何内容 见下图 git分支 当我执行时git status 据说我在分行 git 状态 所以有一些分支机构 我正在与他们合作 你知道如何解决这个问
  • 如何使用Json解析?

    以下是我的 Json 文件 Restaurants 8 Res name Purple Cafe and Wine Bar foodtype American Wine city Seattle state WA latitude 0 lo
  • 使用 awk 的最近邻

    这就是我尝试使用 AWK 语言做的事情 我主要在步骤 2 上遇到问题 我已经显示了一个示例数据集 但原始数据集由 100 个字段和 2000 条记录组成 算法 1 初始化精度 0 2 对于每条记录r Find the closest oth
  • 如何检测蓝牙设备是否已连接

    在 android 中 我的 Activity 如何知道蓝牙 A2DP 设备是否已连接到我的设备 有广播接收器吗 这个广播接收器怎么写 从 API 11 Android 3 0 开始 您可以使用蓝牙适配器发现连接到特定蓝牙配置文件的设备 我
  • 在引擎中使用观察者

    我创建了一个基本上用于我们所有项目的引擎 现在我想做的是添加一个before create回调该引擎中的所有模型 经过一番搜索后 我发现观察者是最佳选择 所以 我创建了这个观察者 app models baco auth auth obse
  • Angular 7 - build --prod 失败并出现错误:无法解析所有参数

    我使用 Angular 7 2 10 当我尝试使用命令构建生产项目时 ng b prod 我收到错误 ERROR in Can t resolve all parameters for ApiService in 我有一个带有 3 个参数的
  • WebView 即使应用程序处于后台/关闭时也如何运行(前台服务处于活动状态)

    我正在构建一个应用程序 它将从网站上抓取一些数据 并在满足某些条件时显示通知 当应用程序打开时 因为正在渲染 WebView 一切都运行良好 没有问题 但是当我关闭应用程序时 WebView 被禁用 因此我无法再使用它来抓取数据 抓取代码位
  • 为什么复制构造函数参数是 const?

    Vector const Vector other Copy constructor x other x y other y 为什么参数是常量 您得到的答案提到确保 ctor 无法更改正在复制的内容 他们是对的 将 const 放在那里确实
  • 使用 C# 进行远程 HTTP Post [重复]

    这个问题在这里已经有答案了 如何在 C 中执行远程 HTTP Post 请求 这是我曾经编写的一个小应用程序的代码 用于将包含值的表单发布到 URL 它应该非常坚固 formValues 是一个 Dictionary 包含要发布的变量及其值
  • 在 Android 上禁用屏幕旋转 [重复]

    这个问题在这里已经有答案了 当我按下按钮时 我想禁用屏幕旋转关于我的所有活动 我怎样才能做到这一点 顺便说一句 当用户单击按钮时 手机可以处于横向或纵向位置 setRequestedOrientation ActivityInfo SCRE
  • 关于hadoop hdfs文件系统重命名

    我正在将大量数据存储到 hdfs 中 我需要将文件从一个文件夹移动到另一个文件夹 请问文件系统的rename方法的成本一般是多少 假设我必须移动 TB 级的数据 非常感谢 重命名是 HDFS 中的仅元数据操作 因此 它也像普通 POSIX
  • 是什么导致我的图像在使用 FTP 通过蓝牙 RFCOMM 传输期间损坏?

    我正在开发两个独立的应用程序 用于使用 Obex 文件传输协议通过蓝牙 RFCOMM 进行数据传输 一方面 在 PC 上运行的 Windows C 控制台应用程序侦听传入的蓝牙连接 并在客户端发出请求时发送图像 另一方面 移动设备上运行的
  • 切换隐私设置将终止该应用程序

    我有一个使用 iPhone 联系人的应用程序 在 iOS 6 中 用户第一次尝试时会收到联系人访问权限提示 此时 用户可以点击 允许 或 不允许 问题是当用户将应用程序置于后台 然后导航到 设置 gt 隐私 gt 联系人 以切换我的应用程序
  • 在 zsh 中哪里放置 $PATH 变量断言?

    I love zsh 但我不知道该把我的 PATH和其他变量断言 我发现它们分散在文件之间 zshrc zprofile bashrc bash profile 有时甚至翻倍 我意识到里面有任何东西bash文件没有多大意义 因为我正在使用z
  • 在 Cygwin 中编译 Haskell 代码,以及 Windows 上 Haskell 平台中的一些其他错误

    我正在尝试使用 Haskell Platform 2011 2 0 1 在 Haskell 中编译一个简单的 hello world 程序 如果我在 WinGHCi 中加载代码并使用 GUI 进行编译 则会创建 exe 然后我可以从 Cyg
  • C# SmtpClient 类无法使用 gmail 发送电子邮件

    我在使用 Gmail 帐户发送电子邮件时遇到问题 我正在拔头发 相同的设置在 Thunderbird 中运行良好 这是代码 我也尝试过 465 端口 但没有成功 SmtpClient ss new SmtpClient smtp gmail