如何将 curl 转换为用于在 php 中发送邮件

How to convert a curl to be used to send a mail in php

我正在尝试使用以下 curl 示例向用户和所有者发送 2 封邮件。如果我想用 php 中的以下代码发送邮件,我将如何做到?实际上,示例代码来自名为 sendinblue 的服务。我很想听听你的意见!

         curl -H 'api-key:your_access_key' -X POST -d '{"cc":["cc@example.net":"cc whom!"],"text":"This is the text","bcc":["bcc@example.net":"bcc whom!"],"replyto":["replyto@email.com","reply to!"],"html":"This is the <h1>HTML</h1>This is inline image 1.<br/><img src=\"{myinlineimage1.png}\" alt=\"image1\" border=\"0\"><br/>Some text<br/>This is inline image 2.<br/><img src=\"{myinlineimage2.jpg}\" alt=\"image2\" border=\"0\"><br/>Some more text<br/>Re-used inline image 1.<br/><img src=\"{myinlineimage1.png}\" alt=\"image3\" border=\"0\">","to":{"to@example.net":"to whom!"},"attachment": {"myfilename.pdf":"your_pdf_files_base64_encoded_chunk_data"},"from":["from@email.com","from email!"],"subject":"My subject","headers":{"Content-Type":"text/html; charset=iso-8859-1", "X-param1":"value1","X-param2":"value2", "X-Mailin-custom":"my custom value","X-Mailin-IP":"102.102.1.2", "X-Mailin-Tag":"My tag"},"inline_image":{"myinlineimage1.png":"your_png_files_base64_encoded_chunk_data", "myinlineimage2.jpg":"your_jpg_files_base64_encoded_chunk_data"}}' 'https://api.sendinblue.com/v2.0/email

要发送以下数据

   $senddata = array (
               'to' => array('sample_mail@live.com'=>'sample_mail@live.com'),
               'from' => array($fromvalue,$fromvalue),
               'replyto' => array("user_mail@live.com","user_mail@live.com"),
                'subject' => "subject",
                'text' => "text",
                'html' => '',
                'fromname' => $fromnamevalue,
                'bcc' => 'bcc'
            );

您可以下载 Chrome 的 Postman 扩展。您可以选择查看请求的代码。在这种情况下,您的示例代码如下所示。

$request = new HttpRequest();
$request->setUrl('https://api.sendinblue.com/v2.0/email');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'api-key' => 'your_access_key',
));

$request->setBody('{
  "cc":["cc@example.net":"cc whom!"],
  "text":"This is the text",
  "bcc":["bcc@example.net":"bcc whom!"],
  "replyto":["replyto@email.com","reply to!"],
  "html":"This is the <h1>HTML</h1>This is inline image 1.<br/><img src=\"{myinlineimage1.png}\" alt=\"image1\" border=\"0\"><br/>Some text<br/>This is inline image 2.<br/><img src=\"{myinlineimage2.jpg}\" alt=\"image2\" border=\"0\"><br/>Some more text<br/>Re-used inline image 1.<br/><img src=\"{myinlineimage1.png}\" alt=\"image3\" border=\"0\">",
  "to":{"to@example.net":"to whom!"},
  "attachment": {
    "myfilename.pdf":"your_pdf_files_base64_encoded_chunk_data"
  },
  "from":["from@email.com","from email!"],
  "subject":"My subject",
  "headers":{
    "Content-Type":"text/html; charset=iso-8859-1",
    "X-param1":"value1",
    "X-param2":"value2",
    "X-Mailin-custom":"my custom value",
    "X-Mailin-IP":"102.102.1.2",
    "X-Mailin-Tag":"My tag"
  },
  "inline_image":{
    "myinlineimage1.png":"your_png_files_base64_encoded_chunk_data",
    "myinlineimage2.jpg":"your_jpg_files_base64_encoded_chunk_data"
  }
}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

您可以使用此网站将 curl 命令转换为 php 代码。 https://incarnate.github.io/curl-to-php/ 在这里为您编写代码就是结果。

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.sendinblue.com/v2.0/email");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"cc\":[\"cc@example.net\":\"cc whom!\"],\"text\":\"This is the text\",\"bcc\":[\"bcc@example.net\":\"bcc whom!\"],\"replyto\":[\"replyto@email.com\",\"reply to!\"],\"html\":\"This is the <h1>HTML</h1>This is inline image 1.<br/><img src=\"{myinlineimage1.png}\" alt=\"image1\" border=\"0\"><br/>Some text<br/>This is inline image 2.<br/><img src=\"{myinlineimage2.jpg}\" alt=\"image2\" border=\"0\"><br/>Some more text<br/>Re-used inline image 1.<br/><img src=\"{myinlineimage1.png}\" alt=\"image3\" border=\"0\">\",\"to\":{\"to@example.net\":\"to whom!\"},\"attachment\": {\"myfilename.pdf\":\"your_pdf_files_base64_encoded_chunk_data\"},\"from\":[\"from@email.com\",\"from email!\"],\"subject\":\"My subject\",\"headers\":{\"Content-Type\":\"text/html; charset=iso-8859-1\", \"X-param1\":\"value1\",\"X-param2\":\"value2\", \"X-Mailin-custom\":\"my custom value\",\"X-Mailin-IP\":\"102.102.1.2\", \"X-Mailin-Tag\":\"My tag\"},\"inline_image\":{\"myinlineimage1.png\":\"your_png_files_base64_encoded_chunk_data\", \"myinlineimage2.jpg\":\"your_jpg_files_base64_encoded_chunk_data\"}}");
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = "Api-Key: your_access_key";
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

已编辑: 只需更改此 curl_setopt($ch, CURLOPT_POSTFIELDS , .... 用此

curl_setopt($ch, CURLOPT_POSTFIELDS,$senddata);