我正在使用mailGun web API并遇到了添加内联文件的问题。 我们的软件创建一个图像并将其作为字符串传递。我想内联那个图像 我的问题是php curl需要一个文件指针,而不是一个实际的文件。我想避免,如果可能的,因为我们有很多的过程,在服务器上运行,并不会想发送一个坏的电子邮件Php Curl添加字符串文件作为后期字段
在此先感谢
MailGun在线样品写tmp文件:http://documentation.mailgun.net/user_manual.html#inline-image 代码示例,我我使用:
function send_inline_image($image) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2/samples.mailgun.org/messages');
curl_setopt($ch,
CURLOPT_POSTFIELDS,
array('from' => 'Excited User <[email protected]>',
'to' => '[email protected]',
'subject' => 'Hello',
'text' => 'Testing some Mailgun awesomness!',
'html' => '<html>Inline image: <img src="cid:test.jpg"></html>',
'inline' => $image))
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$image = 'Some image string that we have generated'
send_inline_image($image)
我什么都不知道关于PHP/mailgun和一些关于电子邮件建设。你是否能够用上面的代码生成并发送电子邮件,“不”工作,或者你是否只是想用一个字符串而不是文件调用php curl代码?如果是前者,请查看[rfc2183](http://www.ietf.org/rfc/rfc2183.txt)第3节中的示例中的电子邮件源文件。无论哪种方式,图像字符串的格式是什么?例如,它是base64编码的,还是你希望mailgun对它进行编码? – n0741337 2013-04-26 22:33:34
更多的解释是我从我们当前的SMPT服务器切换到mailGun。我们使用旧版本的phpmailer发送base64编码的文件。所以我有原始版本和base64版本。另外它的一个PNG文件和上面的代码示例是我正在尝试执行的。 – Jdahern 2013-04-27 01:22:28
你收到了什么错误?根据几个stackoverflow的问题,PHP curl可以处理多个数据输入格式,例如。 [CURL PHP发送图像](http://stackoverflow.com/questions/3433542/curl-php-send-image)。您可以跳过数组技术并像手册中那样构建完整的urlencoded字符串,如'param1 = val1&param2 = val2&...'。如果这不起作用,也许mailgun的api只喜欢inline =图片发布给他们一个特殊的方式。你可以发送一个有效的例子给一个web服务器,它只是回应你的输入,所以你可以学习模仿这种格式。 – n0741337 2013-04-27 22:06:11