【问题标题】:Gmail API not returning message body when mail has attachment邮件有附件时,Gmail API 不返回邮件正文
【发布时间】:2018-05-06 10:37:48
【问题描述】:

我一直在努力解决来自 Gmail API 的意外行为。

到目前为止,我使用 mail.Payload.Parts[0].Body.Data 获取每封邮件的正文,其中包含 base64 格式的邮件正文。在这种情况下,部件的 MimeType 是 text/plain。

问题是,当我检索的邮件有附件时,parts[0] MimeType 是“multipart/alternative”,并且它的正文只有空字段。

如果有附件,我应该如何获取邮件正文?

谢谢!

【问题讨论】:

标签: .net gmail gmail-api


【解决方案1】:

您可以尝试this site中的解决方案。

C# 简化了 .Net 框架中的网络编程。 C# 描述 使用通信编程的各种协议,如 Socket 通信 , SMTP 邮件 , UDP , URL 等 System.Net 类 用于通过使用 HTTP、TCP、 UDP、Socket 等。在前面的程序中,我们看到了如何SMTP email from C# 描述了如何发送带有文本正文的电子邮件。在这里,我们 正在发送带有附件的电子邮件。

这里是提供的示例代码,

using System;
using System.Windows.Forms;
using System.Net.Mail;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
                mail.From = new MailAddress("your_email_address@gmail.com");
                mail.To.Add("to_address");
                mail.Subject = "Test Mail - 1";
                mail.Body = "mail with attachment";

                System.Net.Mail.Attachment attachment;
                attachment = new System.Net.Mail.Attachment("your attachment file");
                mail.Attachments.Add(attachment);

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
                MessageBox.Show("mail Send");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

您也可以参考官方文档.NET Quickstart,这里对api进行了深入讨论,并附有示例代码和逐步设置过程。

如需进一步参考,您可以访问this SO post

【讨论】:

    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2014-08-30
    • 2016-12-21
    • 2016-05-29
    • 2015-06-15
    • 2016-12-12
    相关资源
    最近更新 更多