c# - 如何使用 C# 从我的公司 gmail 地址通过 SMTP 发送电子邮件
问题描述
使用 C# 从个人 gmail 地址发送电子邮件是一个非常常见的问题。互联网上有数百个关于此的线程。我的问题是从我的 g-suite 帐户 (info@mydomain.com) 发送电子邮件。我尝试了以下步骤
- 在 gmail 中允许不太安全的应用
从以下代码发送电子邮件
SmtpClient client = new SmtpClient(FINAPApplicationSettings.SmtpServer, FINAPApplicationSettings.SmtpServerPort); client.UseDefaultCredentials = false; client.EnableSsl = true; client.Credentials = new NetworkCredential("info@mydomain.com", "email password"); MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress("info@mydomain.com"); mailMessage.To.Add("receiver@receiverdomain.com"); mailMessage.IsBodyHtml = true; mailMessage.Body = "Email Body"; mailMessage.Subject = "FINAP REGISTRATION VERIFICATION";
尝试发送电子邮件时收到此异常。“ SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证” 我从 azure 购买了此域 (mydomain.com)。info@mydomain.com 不是 g-suite 的管理员帐户。但我有权访问管理员帐户。非常感谢您对此提供的帮助。
解决方案
我刚刚在我的公司 G-Suite 帐户上使用您的代码进行了测试。
允许用户管理自己的设置后,您需要确保NetworkCredential
对象中提供的用户名已配置为“允许安全性较低的应用程序”。您可以通过以下方式获得它:
- 使用户能够管理自己的设置(您已经这样做了)
- 转到(在这种情况下)到Google 帐户页面以获取
info@mydomain.com
. - 点击“登录和安全”
- 滚动到底部并确保滑块已打开。
第一步可能需要一些时间才能传播到 G-Suite 中的所有用户。
注意:如果密码或用户名不正确,您也会收到此错误。
如果您已完成上述所有操作,但仍然无法正常工作,您可能需要在 DNS 设置中配置 SPF。请参阅使用 SPF 授权电子邮件发件人。
推荐阅读
- apache-spark - 按计数对 collect_set 进行排序
- python - 使用 Dask 读取的参差不齐的 CSV 会产生 DtypeWarning - 加载时忽略“nan”的选项?
- html - Select2 插件破坏了 Vega 可视化下拉菜单
- java - 如何使用 Axis 库设置超时选项
- node.js - Express+Redis Post 请求未字符串化
- intellij-idea - IntelliJ Show Diff 包括未版本控制的文件
- azure-data-explorer - 如何根据 Kusto 中的条件计算列的累积总和
- java - 在 SharedPreferences 中保存 hashmap
- java - 如果父窗口不在焦点中,Java 11 上的 JComboBox 在第一次鼠标单击时不显示弹出菜单
- python - 将管理员创建的用户连接到 django 项目中的注册用户