【问题标题】:Setting multiple email address for CC param with SendGrid (PHP)使用 SendGrid (PHP) 为 CC 参数设置多个电子邮件地址
【发布时间】:2016-12-11 04:13:32
【问题描述】:

我正在尝试将抄送添加到多人的电子邮件中。我在documentation 中看到,如果我创建一个带有电子邮件地址的数组,cc 将附加但这是不成功的。

这是我必须发送抄送电子邮件的内容

$cc = array('email3@123.net', 'email4@123.net');
$params = array(
        'api_user'  => $user,
        'api_key'   => $password,

        'to'        => "email@123.net",                     
        'toname'    => 'To Name',
        'bcc'       => 'email2@123.net',
        'subject'   => $subject,
        'html'      => $content,
        'from'      => $from,
        'fromname'  => $fromname,
    );

    if(!empty($cc)){
        $params['cc'] =  json_encode($cc);
    }
    $url = $sendGrilUrl; 
    $request =  $url.'api/mail.send.json';
    $session = curl_init($request);
    curl_setopt($session, CURLOPT_POST, true);
    curl_setopt($session, CURLOPT_POSTFIELDS, $params);
    curl_setopt($session, CURLOPT_HEADER, false);
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($session);
    curl_close($session);           
    $response = json_decode($response);

当我执行此方法时,我从 SendGrid 收到一条错误消息,指出“无效的电子邮件地址”。

我已经尝试过 link 提供的方法。电子邮件已发送,但它按原样打印字符串并且没有吸引力。

非常感谢您的帮助,如果需要更多详细信息,请告诉我。

【问题讨论】:

  • 你是什么意思它按原样打印字符串
  • 使用我提供的第二个链接 (stackoverflow.com/questions/27307034/…) 将电子邮件数组转换为 json 时,电子邮件会发送,但 cc 字段显示为 '0=email3%40123.net&1=email4%40123。净'

标签: php json email curl sendgrid


【解决方案1】:

您必须将电子邮件作为数组值传递,例如 cc[0]、cc[1] 等。试试下面的 sn-p:

 $params = array(
    'api_user'  => $user,
    'api_key'   => $password,
    'to'        => "email@123.net",                     
    'toname'    => 'To Name',
    'bcc'       => 'email2@123.net',
    'cc[0]'     => 'email3@123.net',
    'cc[1]'     => 'email4@123.net',
    'subject'   => $subject,
    'html'      => $content,
    'from'      => $from,
    'fromname'  => $fromname,
);


$url = $sendGrilUrl; 
$request =  $url.'api/mail.send.json';
$session = curl_init($request);
curl_setopt($session, CURLOPT_POST, true);
curl_setopt($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
curl_close($session);           
$response = json_decode($response);

现在应该可以了! :)

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2019-01-10
    相关资源
    最近更新 更多