Я хотел бы отправить список адресов электронной почты в sparkpost API с помощью curl
здесь завиток как в документах sparkpost
curl -v \
-H "Content-Type: application/json" \
-H "Authorization: $API_KEY" \
-X GET "https://api.sparkpost.com/api/v1/metrics/deliverability/aggregate?campaigns=testjob&from=2014-01-23T14:00&metrics=count_targeted,count_sent,count_accepted&timezone=America%2FNew_York&to=2014-06-23T15:50"
Как мне сделать это с помощью PHP curl
Если вы хотите создать список адресов электронной почты на сервере SparkPost, вы можете использовать этот API: https://developers.sparkpost.com/api/recipient-lists.html#recipient-lists-create-post Вот пример в PHP:
<?php
$request = new HttpRequest();
$request->setUrl('https://api.sparkpost.com/api/v1/recipient-lists');
$request->setMethod(HTTP_METH_POST);
$request->setQueryData(array(
'num_rcpt_errors' => '3'
));
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => $YOUR_API_KEY_HERE // put your API key here
));
// You will need to put PHP code that reads from your DB and puts Your recipients in that array below. You only need the address->name and address-email bit if you don't have additional metadata
$request->setBody('{
"id": "unique_id_4_graduate_students_list",
"name": "graduate_students",
"description": "An email list of graduate students at UMBC",
"attributes": {
"internal_id": 112,
"list_group_id": 12321
},
"recipients": [
{
"address": {
"email": "[email protected]",
"name": "Wilma"},
"tags": [
"greeting",
"prehistoric",
"fred",
"flintstone"],
"metadata": {
"age": "24",
"place": "Bedrock"},
"substitution_data": {
"favorite_color": "SparkPost Orange",
"job": "Software Engineer"}
},
{
"address": {
"email": "[email protected]",
"name": "ABC"},
"tags": [
"driver",
"flintstone"],
"metadata": {
"age": "52",
"place": "MD"},
"substitution_data": {
"favorite_color": "Sky Blue",
"job": "Driver"}
},
{
"address": {
"email": "[email protected]",
"name": "Grad Student Office",
"header_to": "[email protected]"},
"tags": [
"driver",
"fred",
"flintstone"],
"metadata": {
"age": "33",
"place": "NY"},
"substitution_data": {
"favorite_color": "Bright Green",
"job": "Firefighter"}
}
]
}');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Предполагая, что вы хотите отправить электронное письмо списку получателей, который вы сохранили в SparkPost ниже, это один из способов сделать это в PHP.
Чтобы это работало, вам нужно создать «список получателей» в SparkPost здесь https://app.sparkpost.com/lists/recipients и укажите идентификатор списка в запросе ниже. Вам также понадобится ключ API, который позволяет вводить REST, который можно создать здесь. https://app.sparkpost.com/account/credentials Вам также потребуется действующий отправляющий домен, который, как я полагаю, вы уже настроили в SparkPost.
<?php
$request = new HttpRequest();
$request->setUrl('https://api.sparkpost.com/api/v1/transmissions');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => $YOUR_SPARKPOST_API_KEY . // Put your "real" API key here or better set a variable and use that
));
$request->setBody('{
"options": {
"open_tracking": true,
"click_tracking": true
},
"campaign_id": "test_campaign",
"recipients": {
"list_id": "unique_id_4_graduate_students_list" // Put your List ID here from here https://app.sparkpost.com/lists/recipients
},
"content": {
"from": {
"email": "[email protected]", // Change this to your proper from address
"name": "John Doe"},
"subject": "simple subject",
"text": "simple text content",
"html": "<b>Your HTML Content</b>"}
}
');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Вот еще несколько советов, которые могут помочь вам быстрее. Здесь есть PHP-библиотека SparkPost: https://github.com/SparkPost/php-sparkpost
Кроме того, для получения дополнительных вопросов и ответов в режиме реального времени вы можете присоединиться к сообществу Slack здесь: http://slack.sparkpost.com/ Как только вы вошли, проверьте канал #php.
Если вы хотите ознакомиться с API, вы можете попробовать ресурсы PostMan. Вот хорошее сообщение в блоге, чтобы вы начали: https://www.sparkpost.com/blog/how-to-run-sparkpost-postman/ После этого PostMan может создавать код на большинстве распространенных языков, чтобы помочь вам быстрее приступить к работе.
$ch = curl_init("https://api.sparkpost.com/api/v1/metrics/deliverability/aggregate?campaigns=testjob&from=2014-01-23T14:00&metrics=count_targeted,count_sent,count_accepted&timezone=America%2FNew_York&to=2014-06-23T15:50");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: $API_KEY',
'Content-Type: application/json'
));
$data = curl_exec($ch);
curl_close($ch);
Больше информации: Документы
Если у вас есть доступ к shell_exec (), вы можете вызвать его как командную строку оболочки:
<?php
$output = shell_exec('curl -H "Content-Type: application/json" -H "Authorization: '.$API_KEY.'" -X GET "https://api.sparkpost.com/api/v1/metrics/deliverability/aggregate?campaigns=testjob&from=2014-01-23T14:00&metrics=count_targeted,count_sent,count_accepted&timezone=America%2FNew_York&to=2014-06-23T15:50"');
echo $output;
?>
Предполагая, что вас интересует только ответ сервера, я удалил аргумент -v из командной строки, который обозначает подробный режим, а подробный режим выводит дополнительную отладочную информацию о запросе curl, которая будет связываться с выводом, для получения дополнительной информации о как использовать curl в командной строке man curl