Как отправить контент Summer Note напрямую по электронной почте - PullRequest
0 голосов
/ 08 ноября 2019

Мне нужно отправить письмо с содержимым летней заметки. Я использую метод loadView Code Igniter для отображения тела моей почты, но текстовое содержимое, отображающее изображения, не

Как только я получил проблему, передача закрыта, осталось байт для чтения: «Я исправил эту проблему, используя эту ссылку

https://justrocketscience.com/post/php_guzzle_bug/

newsletterMail.php

<html>
<head>Mailer</head>
<?php echo $body; ?>
</html>



$view= $this->CI->load>view('admin_user/newsletterMail',$pageData,TRUE);    

$headers=array(
            'Authorization: Bearer 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',
            'Content-Type: application/json'
        );

        $data=[
            "personalizations"=>[
                [
                    "to"=>$mailData['to']
                ]
            ],
            "from"=>[
                "email"=>"test@gmail.com"
            ],
            "subject"=>$subject,
            "content"=>[
                [
                    "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);
        curl_setopt($ch,CURLOPT_TCP_KEEPALIVE, 10);
        curl_setopt($ch,CURLOPT_TCP_KEEPIDLE, 10);
        $response= curl_exec($ch);
        $err = curl_error($ch);
        curl_close($ch);

Мне нужно показать контент, который я создаллетом записка на почту

Есть решение?

1 Ответ

0 голосов
/ 08 ноября 2019

Вместо использования curl вы можете использовать функцию электронной почты codeigniter по умолчанию для отправки почты, а также протокол SMTP для отправки почты. Проверьте ниже код для отправки почты.

function setProtocol(){
   $CI = &get_instance();

   $CI->load->library('email');

   $config = Array(
      'protocol' => 'smtp',
      'smtp_host' => 'smtp.googlemail.com',
      'smtp_port' => 465, //(Port: 465 (SSL required) or 587 (TLS required))
      'smtp_user' => '**************', //(your Gmail account (e.g. admin@gmail.com))
      'smtp_pass' => '**************', //(your Gmail password)
      'mailtype' => "html",
      'charset' => 'iso-8859-1',
      'wordwrap' => TRUE,
      'newline' => '\r\n',
    );

    $CI->email->initialize($config);

    return $CI;
 }

function newsletter(){
  $CI = setProtocol();        

  $CI->email->from('admin@gmail.com');
  $CI->email->subject("Enter your subject");
  $CI->email->message($CI->load->view('admin_user/newsletterMail', $pageData, TRUE));
  $CI->email->to('user@gmail.com');
  $status = $CI->email->send();

  return $status;
}

Вы можете использовать setProtocol() в глобальном масштабе для отправки других писем также.

...