Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将电子邮件作为服务帐户gmail发送

将电子邮件作为服务帐户gmail发送
EN

Stack Overflow用户
提问于 2022-11-13 01:55:49
回答 1查看 43关注 0票数 0

要明确:

  • 我不是在冒充其他用户。我从服务帐户发送电子邮件,接收方将看到服务帐户的名称为发件人
  • 我已经启用了gmail api并正确地设置了服务帐户。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import base64
from google.oauth2 import service_account
from email.message import EmailMessage
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    filename = 'client_secret.json',
    scopes = ['https://mail.google.com/'],
)
service = build('gmail', 'v1', credentials=creds)
mime_message = EmailMessage()
mime_message['To'] = 'receiving_accont@gmail.com'
mime_message['From'] = 'serviceaccountname@appname.iam.gserviceaccount.com'
mime_message['Subject'] = 'Test Subject'
mime_message.set_content('Test Message')

encoded_message = base64.urlsafe_b64encode(mime_message.as_bytes()).decode()
create_draft_request_body = {
    'message': {'raw': encoded_message}
}
draft = service.users().drafts().create(userId="myuserid",body=create_draft_request_body).execute()

错误:

当请求https://gmail.googleapis.com/gmail/v1/users/myclientid/drafts?alt=json返回“前提检查失败”时,shell

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-13 03:55:13

failedPrecondition意味着在gmail中使用服务帐户的条件之一没有得到满足。

以便在Gmail中使用服务帐户。必须将域宽代表团配置为您工作空间帐户上的用户。

服务帐户本身无法发送电子邮件。要100%清楚:你想做什么是不可能的。必须将授权配置中的主题配置为工作区域中的用户。serviceaccountname@appname.iam.gserviceaccount.com没有发送电子邮件的权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def _create_client(subject):
    credentials = service_account.Credentials
    credentials = credentials.from_service_account_file('credentials/service_account.json',
        scopes=['https://www.googleapis.com/auth/gmail.settings.sharing',
                'https://www.googleapis.com/auth/gmail.settings.basic'],
        subject=subject)
    service = discovery.build('gmail', 'v1', credentials=credentials)
    return service

我通常向我的客户推荐的是创建一个虚拟的no-reply@yourdomain.com用户,并从中发送电子邮件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74419937

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文