Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sendgrid电子邮件批量发送失败';不要发送PHP_Php_Sendgrid Api V3_Bulk Email - Fatal编程技术网

Sendgrid电子邮件批量发送失败';不要发送PHP

Sendgrid电子邮件批量发送失败';不要发送PHP,php,sendgrid-api-v3,bulk-email,Php,Sendgrid Api V3,Bulk Email,$email变量将参数设置为电子邮件的集合 示例:$email=”abc@mail.com,info@abc.com,def@gmail.com“ 我是怎么做到的?                                                                                                                                                                        

$email
变量将参数设置为电子邮件的集合 示例:
$email=”abc@mail.com,info@abc.com,def@gmail.com“

我是怎么做到的?                                                                                                                                                                                                                                                              

Heyho Gi

您可以使用improde()将数组转换为字符串,这样您可以将电子邮件作为数组获取,然后您可以说
$email=improde(“,”,$emails)
和$email将是
abc@mail.com,info@abc.com,def@gmail.com
。但我不明白你为什么用外人公司给他打点!您可以在您的机器上本地执行此操作!不要与其他公司共享太多数据;)

~Tim

a)
explode()
使用
发送电子邮件值以将其转换为数组

b) 在此数组上应用循环并发送邮件

c) 确保检查实际值,而不是
$\u POST['send']

array(
         "email" => $email,
         "name" => $name
         )


  


您到底想要实现什么?如果任何变量应该以另一种格式给出,是什么阻止你更改代码中的格式?谢谢你,兄弟,你减轻了我的压力:)@Gihan很高兴帮助你。顺便说一句,Sendgrid API提供了一次性发送多封电子邮件的功能,而不是循环发送(但我通过研究得到的是,该功能是付费的)。你也可以看看,我需要与你的答案相反的方法,所以我使用explode()将字符串转换为数组谢谢你的答案
array(
         "email" => $email,
         "name" => $name
         )


  
<?php
    if (!empty($_POST['email']) && !empty($_POST['subject']))
    {
        $emails = explode(',',$_POST['email']);
        $subject = $_POST['subject'];
        $body = $_POST['message'];
        
        foreach($emails as $email){

            $data = array(
                "personalizations" => array(
                    array(
                        "to" => array(
                            array(
                                "email" => $email,
                                "name" => $name
                            )
                        )
                    )
                ) ,
                "from" => array(
                    "email" => $sender
                ) ,
                "subject" => $subject,
                "content" => array(
                    array(
                        "type" => "text/html",
                        "value" => $body
                    )
                )
            );
        
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "https://api.sendgrid.com/v3/mail/send");
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $response = curl_exec($ch);
            curl_close($ch);
        }
           
    
    }
    ?>