Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 使用气体中的mailjet发送带有附件的邮件_Email_Google Apps Script_Email Attachments - Fatal编程技术网

Email 使用气体中的mailjet发送带有附件的邮件

Email 使用气体中的mailjet发送带有附件的邮件,email,google-apps-script,email-attachments,Email,Google Apps Script,Email Attachments,我正在尝试使用谷歌应用程序脚本中的Mailjet发送带有PDF附件的邮件。我可以发送没有问题的普通邮件,但不太确定如何包含附件 Mailjet文档: 我想我的问题是基本内容。我真的不明白如何对附件进行编码。当我执行以下代码时,会发送一封带有PDF附件的电子邮件,但当我尝试打开PDF时,它会显示:“无法显示PDF(test.PDF格式无效)” 尝试这样编码: var pdf = newDoc.getAs('application/pdf').getBytes(); var attach =

我正在尝试使用谷歌应用程序脚本中的Mailjet发送带有PDF附件的邮件。我可以发送没有问题的普通邮件,但不太确定如何包含附件

Mailjet文档:

我想我的问题是基本内容。我真的不明白如何对附件进行编码。当我执行以下代码时,会发送一封带有PDF附件的电子邮件,但当我尝试打开PDF时,它会显示:“无法显示PDF(test.PDF格式无效)”


尝试这样编码:

  var pdf = newDoc.getAs('application/pdf').getBytes();
  var attach = {fileName:'test.pdf',content:pdf, mimeType:'application/pdf'};

  var mailjetparams = {
    "Messages":[{
    "From": {"Email": 'sender@domain.com',"Name": 'Robert'},
    "To": [{"Email": 'reciever@domain.com'}],
    "Subject": 'subject',
    "HTMLPart": 'this message',
    "Attachments": [attach]
   }]
 }

尝试这样编码:

  var pdf = newDoc.getAs('application/pdf').getBytes();
  var attach = {fileName:'test.pdf',content:pdf, mimeType:'application/pdf'};

  var mailjetparams = {
    "Messages":[{
    "From": {"Email": 'sender@domain.com',"Name": 'Robert'},
    "To": [{"Email": 'reciever@domain.com'}],
    "Subject": 'subject',
    "HTMLPart": 'this message',
    "Attachments": [attach]
   }]
 }

下面的修改怎么样?我认为错误的原因可能是
Utilities.base64Encode(附件)

修改点:
newDoc.getAs(MimeType.PDF)
检索的附件是Blob。无法使用
实用程序将Blob直接转换为base64。base64Encode()
。所以请将Blob转换为字节数组,并转换为base64

当这反映到脚本中时。修改部分如下

发件人: 致: 或

当Google文档作为Blob检索时,Google会自动转换为PDF。你也可以用这个

参考:

如果我误解了你的问题,很抱歉。

下面的修改如何?我认为错误的原因可能是
Utilities.base64Encode(附件)

修改点:
newDoc.getAs(MimeType.PDF)
检索的附件是Blob。无法使用
实用程序将Blob直接转换为base64。base64Encode()
。所以请将Blob转换为字节数组,并转换为base64

当这反映到脚本中时。修改部分如下

发件人: 致: 或

当Google文档作为Blob检索时,Google会自动转换为PDF。你也可以用这个

参考:

如果我误解了你的问题,很抱歉。

必须使用Mailjet吗?必须使用Mailjet吗?谢谢@iJay。非常感谢你的帮助。谢谢你@iJay。非常感谢您的帮助。@Robert欢迎您。“我也谢谢你。”罗伯特,欢迎你。也谢谢你。
var attachment = newDoc.getAs(MimeType.PDF);
var attachment = newDoc.getAs(MimeType.PDF).getBytes();
var attachment = newDoc.getBlob().getBytes();