You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中通过服务账号或Google OAuth调用Gmail API发送无回复邮件

可行性说明

完全可以调用Gmail API发送忘记密码场景的无回复通知邮件,服务账号和Google OAuth 2.0两种授权方式均可以实现该需求:

  • 服务账号适配服务端无交互自动发信场景,是该需求的最优选择
  • 普通Google OAuth 2.0适合有用户交互的发信场景,若提前获取到无回复账号的长期刷新令牌也可实现自动发信,不过维护成本高于服务账号方案
前置准备要求
  • 需要持有Google Workspace账号,个人Gmail账号不支持服务账号全域权限委派,无法模拟组织内no-reply账号发信
  • 在Google Cloud后台完成Gmail API启用、服务账号创建及密钥生成,同时在Google Workspace管理后台为服务账号配置Gmail API的发信权限,允许该服务账号模拟组织内指定账号发信
  • 提前在Google Workspace内创建no-reply@你的业务域名账号,配置该账号自动拒收所有回复邮件即可实现无回复效果
C# 服务账号实现代码示例

首先安装所需NuGet包:

Install-Package Google.Apis.Gmail.v1
Install-Package Google.Apis.Auth

核心发信代码:

using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;
using Google.Apis.Services;
using System.Net.Mail;
using System.Net.Mime;

// 加载服务账号密钥文件
GoogleCredential credential = GoogleCredential.FromFile("服务账号密钥文件路径.json")
    .CreateScoped(GmailService.Scope.GmailSend)
    .CreateWithUser("no-reply@你的业务域名"); // 模拟的无回复账号

// 初始化Gmail服务
var gmailService = new GmailService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "你的ASP.NET Core应用名称"
});

// 构造邮件内容
var mailMessage = new MailMessage
{
    From = new MailAddress("no-reply@你的业务域名", "你的站点名称"),
    Subject = "密码重置通知",
    IsBodyHtml = true,
    Body = "<p>您好,请点击以下链接重置密码:xxx</p>"
};
mailMessage.To.Add(new MailAddress("用户邮箱地址"));

// 转换为Gmail API要求的Base64Url编码格式
using var ms = new MemoryStream();
mailMessage.Save(ms, true);
var rawMessage = Convert.ToBase64String(ms.ToArray())
    .Replace('+', '-')
    .Replace('/', '_')
    .Replace("=", "");

// 发送邮件
var sendRequest = gmailService.Users.Messages.Send(new Google.Apis.Gmail.v1.Data.Message
{
    Raw = rawMessage
}, "me");
sendRequest.Execute();
注意事项
  • Gmail API有发信配额限制,普通Google Workspace账号单账号每日最多可发送2000封邮件,可满足绝大多数中小站点的密码重置发信需求
  • 邮件内容需符合Google反垃圾邮件规范,避免出现违规内容导致邮件被拦截或账号权限被限制
  • 若使用OAuth 2.0方案,需提前为no-reply账号完成授权并缓存刷新令牌,后续发信时通过刷新令牌获取访问令牌即可,无需每次手动授权

内容的提问来源于stack exchange,提问作者Shishank Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:18:03