非常高兴能在StackOverflow上提出我的第一个问题.这些年来,我一直在依靠它来教自己很多!
我的问题是这个.尝试通过Mandrill的API发送邮件时出现以下错误:
{"status":"error","code":-1,"name":"ValidationError","message":"You must specify a key value"}
<?PHP $to = 'their@email.com'; $content = '<p>this is the emails html <a href="www.google.co.uk">content</a></p>'; $subject = 'this is the subject'; $from = 'my@email.com'; $uri = 'https://mandrillapp.com/api/1.0/messages/send.json'; $content_text = strip_tags($content); $postString = '{ "key": "RR_3yTMxxxxxxxx_Pa7gQ","message": { "html": "' . $content . '","text": "' . $content_text . '","subject": "' . $subject . '","from_email": "' . $from . '","from_name": "' . $from . '","to": [ { "email": "' . $to . '","name": "' . $to . '" } ],"track_opens": true,"track_clicks": true,"auto_text": true,"url_strip_qs": true,"preserve_recipients": true },"async": false }'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$uri); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true ); curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_POSTFIELDS,$postString); $result = curl_exec($ch); echo $result; ?>
什么可能导致消息中的验证错误.我提供我的API密钥,它是有效的!
希望有人能够提供帮助,并感谢您在这里一般都很棒!
谢谢!
您可能还想使用数组,让PHP为您处理JSON编码.如果JSON由于某种原因无效,则此特定错误很常见.因此,例如,您可以像这样设置参数:
原文链接:https://www.f2er.com/php/135996.html$params = array( "key" => "keyhere","message" => array( "html" => $content,"text" => $content_text,"to" => array( array("name" => $to,"email" => $to) ),"from_email" => $from,"from_name" => $from,"subject" => $subject,"track_opens" => true,"track_clicks" => true ),"async" => false ); $postString = json_encode($params);
如果需要,您还可以使用json_decode来解析响应.