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

为何Gmail API对部分用户会忽略设置的From字段值?

Gmail API发送邮件From字段失效问题解决

核心发送代码

public class SendMail
{
    public void Send()
    {
        var stream = new StringWriter();
        stream.NewLine = "\r\n";
        stream.WriteLine($"From:{_from}");
        if (_to.Any()) stream.WriteLine($"To:{_to.ToCSV()}");
        if (_cc.Any()) stream.WriteLine($"Cc:{_cc.ToCSV()}");
        if (_bcc.Any()) stream.WriteLine($"Bcc:{_bcc.ToCSV()}");
        stream.WriteLine($"Subject:{_subject}");
        stream.WriteLine($"Reply-to:{_replyTo}");
        stream.WriteLine($"Domain:{User.Domain}");
        stream.WriteLine($"Content-type:text/html;charset=UTF-8");
        stream.WriteLine($"Company:Knowledge and  Technology Joyfully Engaged");
        stream.WriteLine("");
        stream.WriteLine($"{_body}");
        stream.WriteLine("");
        stream.WriteLine("With kind regards,<br />");
        stream.WriteLine($"<a href=\"mailto:{User.Email}\">{User.DisplayName}</a>, {User.Occupations.Last()}<br />");
        foreach (var org in User.Companies.Where(c => !string.IsNullOrWhiteSpace(c.Domain)))
        {
            stream.WriteLine($"<a href=\"https://www.{org.Domain}\">{org.Name}</a><br />");
        }
        var msg = stream.ToString();
        string message = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(msg));
        try
        {
            User.GMail.Users.Messages.Send(new Message { Raw = message, }, "me").Execute();
            Console.WriteLine($"User {User.DisplayName} with subject {_subject} sent.");
            Console.WriteLine($"{msg.Split("\r\n\r\n").First()}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"User {User.DisplayName} with subject {_subject} results in  error {ex.Message} with these headers:");
            Console.WriteLine($"{msg.Split("\r\n\r\n").First()}\r\n");
        }
    }
// More stuff, but boring...
}

问题现象

这是一款内部应用,通过User.GMail.Users.Messages.Send(new Message { Raw = message, }, "me").Execute();为已认证用户发送每日更新邮件,整体运行正常。但部分用户遇到问题:设置的From字段被忽略,期望显示「显示名称 alias@example.com」,实际却显示为「domain@example.com」。

原因及解决方法

排查后确认,问题根源是这些用户未在自己的Gmail账户中添加对应发件地址作为别名。只需在用户的Gmail账户中创建该地址的别名,即可让From字段正常显示预期内容。

内容的提问来源于stack exchange,提问作者Wim ten Brink

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:01:07