我正在尝试将Excel文件(.xlsx)添加为通过Mandrill API发送的电子邮件的附件。 我在php文件中使用CURL发送电子邮件。 Excel文件名为Report.xlsx。

这是使用CURL的Mandrill API 的链接 这是另一个有关添加文件路径的问题的链接


我收到以下错误消息:

PHP解析错误:语法错误,/ var / www / html / newFolder / EmailAlertSystem / mailchimp-mandrill-api-php / UsageReport.php中出现意外的“路径”(T_STRING)

(****这是我的代码目录)


这是我的PHP代码,用于通过Mandrill发送电子邮件:

$uri = 'https://mandrillapp.com/api/1.0/messages/send.json';
$api_key = 'APIKEY';
$content = 'all the content I want to add';
$content_text = strip_tags($content);
$from = 'FROM';
$fromName = 'FROMNAME';
$to = 'TO';
$toName = 'TONAME';
$subject = 'SUBJECT';
$fullName = "FIRSTNAME LASTNAME";
$attachment = file_get_contents('Report.xlsx');
$attachment_encoded = base64_encode($attachment); 


$postString = '{
"key": "' . $api_key . '",
"message": {
 "html": "' . $content . '",
 "text": "' . $content_text . '",
 "subject": "' . $subject . '",
 "from_email": "' . $from . '",
 "from_name": "' . $fromName . '",
 "to": [
 {
 "email": "' . $to . '",
 "name": "' . $fullName . '"
 }
 ],
 "track_opens": true,
 "track_clicks": true,
 "auto_text": true,
 "url_strip_qs": true,
 "preserve_recipients": true,
 "attachments" : array(
        array(
            'path' => $attachment_encoded,
            'type' => "application/xlsx",
            'name' => 'Report.xlsx',
        )
    )




},
"async": false
}';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);

//this is the executable curl statement that will actually send the email
$result = curl_exec($ch);

任何帮助将不胜感激!!! 请让我知道我是否不清楚以及我在做什么错。 先感谢您!

#1楼 票数:4 已采纳

错误似乎是指这部分

 "attachments" : array(
        array(
            'path' => $attachment_encoded,
            'type' => "application/xlsx",
            'name' => 'Report.xlsx',
        )
    )

在此,字符串在path之前终止,然后重新启动,这是语法错误。

就像是,

 "attachments" : array(
        array(
            \'path\' => $attachment_encoded,
            \'type\' => "application/xlsx",
            \'name\' => \'Report.xlsx\',
        )
    )

即转义引号应该解决它,但是...该字符串的其余部分看起来像JSON。 附件部分应该采用类似PHP的数组格式吗? 可能要仔细检查。

  ask by MadsterMaddness translate from so

未解决问题?本站智能推荐:

2回复

Mandrill电子邮件附件文件路径

我正在尝试将一些附件添加到通过php包装器使用mandrill api发送的电子邮件中。 我尝试了多种尝试来成功附加文件,但无济于事。 我正在使用cakephp 2.x,但在这种情况下我认为这没有任何特别的意义(也许呢?!)。 我正在使用由mandrill维护的php包装器, 网址为htt
1回复

SwiftMailer破坏了带有动态内容的附件(使用山d)

如何附加来自mandrill Webhook的动态内容,并使用Swiftmailer和SMTP(Mandrill)发送它。 这是我的代码: 我一直在搜索并阅读SwiftMailer文档,但找不到解决问题的方法。所有附件在目的地都将损坏!
1回复

使用foreach循环添加山d电子邮件附件

我需要回复收到的电子邮件,包括其中包含的附件​​。 我写了这段代码,但是由于某种原因,当我检查调试日志和mandrill API日志时,附件未包含在请求中。 我的错在哪里
1回复

Mandrill使用cURLCACA错误

我正在尝试Mandrill。 看起来很好。 我注册了一个帐户并获得了api密钥。 从https://bitbucket.org/mailchimp/mandrill-api-php下载了Mandrill PHP包装器 这篇文章似乎有一个非常好的hello-world Mandrill电
17回复

PHP-SSL证书错误:无法获取本地颁发者证书

我在 Windows 7 上运行 PHP 版本 5.6.3 作为 XAMPP 的一部分。 当我尝试使用 Mandrill API 时,出现以下错误: 未捕获的异常“Mandrill_HttpError”,消息为“API 调用消息/发送模板失败:SSL 证书问题:无法获得本地颁发者证书” 我已经尝试
2回复

PHP:将URL内容作为附件提供给电子邮件(未下载)?

底部的过时问题 我想编写一个PHP脚本,它可以将给定URL的内容发送到电子邮件,而无需再次下载和上传。 我执行此操作的资源有限:具有PHP和64M内存限制以及〜1GB存储空间的普通托管帐户 我的第一个代码是带有fopen()的简单sendmail,但是如果给定文件太大,则会出现内存问
2回复

SendGrid-Curlphp外部文件附件损坏

我正在使用带有curl方法的客户项目使用SendGrid。 一切正常,但通过SendGrid发送的电子邮件中附加的(ir)文件已损坏。 这是我的代码: 当我的数组键上没有扩展文件时,我将获得一个包含相关值的文本文件。 我想我并不是一个人遇到这个问题,如果您有解决此问题的想法,谢谢
1回复

在Mandrill中发送附件

我正在尝试与Mandrill发送附件。 我已将此添加到我的对象中: 附件是一个很大的字符串,当我将文件上传到此base64转换器时得到: http://www.motobit.com/util/base64-decoder-encoder.asp 我收到此错误: 我尝试将字符串