首页 > 解决方案 > 使用 Gmail API 转发电子邮件

问题描述

我可以使用Gmail api在同一个邮件线程中回复

对于转发电子邮件,我找不到任何直接参考。所以我请求了整个消息体传递消息 ID 并尝试使用这些作为参考更改几个字段

public ActionResult ForwardEmail(CancellationToken cancellationToken,string ID)
{
    try
    {
        var result = new AuthorizationCodeMvcApp(this, new GmailApiFilter()).
        AuthorizeAsync(cancellationToken).Result;

        if (result.Credential != null)
        {
            var service = new GmailService(new BaseClientService.Initializer
            {
                HttpClientInitializer = result.Credential, ApplicationName = "ASP.NET MVC Sample"
            });

            var emailInfoReq = service.Users.Messages.Get("me", ID);
            emailInfoReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw; 
            var emailInfoResponse = emailInfoReq.Execute();
            using (MemoryStream rawInStream = new MemoryStream(Base64FUrlDecode(emailInfoResponse.Raw)))
            using (MemoryStream rawOutStream = new MemoryStream())
            {
                var tempcheck = MimeKit.MimeMessage.Load(rawInStream);

                tempcheck.ResentFrom.Add(new MimeKit.MailboxAddress("", "From@email.com"));
                tempcheck.ResentTo.Add(new MimeKit.MailboxAddress("", "to@email.com"));
                tempcheck.ResentDate = DateTime.Now;
                tempcheck.ResentMessageId = tempcheck.MessageId;
   
                tempcheck.WriteTo(rawOutStream);
                emailInfoResponse.Raw = Base64UrlEncode(rawOutStream.ToArray());
            }

            var tempq = service.Users.Messages.Send(emailInfoResponse,"me");
            var temp = tempq.Execute();
            return Json(temp);
        }
        else
        {
            return new RedirectResult(result.RedirectUri);
        }
    }
    catch(Exception ex)
    {
        return Json(ex.Message);
    }
}

错误

Google.Apis.Requests.RequestError Precondition Failed [412] Errors [ Message[Precondition Failed] Location[If-Match - header] Reason[conditionNotMet] Domain[global] ] 

标签: c#asp.net-mvcgmail-api

解决方案


推荐阅读