我想使用不同的“角色”(例如 info@ 、 customer-support@ 、 tech-support@ 、 no-reply@ )向我的客户发送电子邮件。
我尝试过两种方法:
我首先为我的 Gmail for Business 应用程序设置一个具有全局委托的服务帐户。
为了测试它是否有效,我设置了 2 个用户:lev@mydomain.com 和 root@mydomain.com。事实上,我可以成功地从 lev@ 和 root@ 发送电子邮件。
然而,当我尝试为我的应用程序添加 5 个不同的用户帐户时,Gmail 对机器人/滥用感到偏执,并要求我证明所有帐户都是“人性化”的,包括设置密码、登录和通过电话进行短信验证。此外,他们要求不同的账户使用不同的手机来证明是不同的人。因此,账户的设置成为一个主要问题。
我还想避免创建多个帐户,因为我要为每个帐户付费,而且从语义上讲,所有角色都只是一个帐户。所以别名似乎是一个更好的主意。
问题是,当我尝试发送电子邮件并将“发件人”字段设置为别名(例如 from:no-reply@mydomain.com)时,我收到以下异常:
Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Delegation denied for root@mydomain.com",
"reason" : "forbidden"
} ],
"message" : "Delegation denied for root@mydomain.com"
}
Run Code Online (Sandbox Code Playgroud)
有人遇到并解决过这个问题吗?
认证/凭证代码如下:
/*
* Set …Run Code Online (Sandbox Code Playgroud) StackOverflow上一个已回答的问题表明,在电子邮件正文中添加html-markup就可以了.这个解决方案是否正确
但是,如果收件人的电子邮件服务器/客户端不支持HTML电子邮件呢?
例如,当使用Apache commons电子邮件时,我会执行以下操作:
// set the html message
email.setHtmlMsg("<html>Our logo - <img src=\"cid:"+cid+"\"></html>");
// set the alternative message
email.setTextMsg("Your email client does not support HTML messages");
Run Code Online (Sandbox Code Playgroud)
如果收件人电子邮件服务器/客户端不支持HTML,有没有办法告诉Gmail API哪些电子邮件会退回?
PS我对Java代码示例特别感兴趣.
谢谢