Отправлять почту с помощью ключа API Sendgrid, не используя SMTP в Codeigniter - PullRequest
0 голосов
/ 14 апреля 2020

Что мне нужно: мне нужно отправить электронное письмо от Codeigniter с ключом API Sendgrid.

Ниже приведен пример отправки электронной почты с использованием SMTP-данных, имени пользователя и пароля в codeigniter.

Пример:

Создайте файл с именем «email. php» в папке application / config и вставьте в него приведенный ниже код.

/* application/config/email.php */

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/*
|--------------------------------------------------------------------------
| SendGrid Setup
|--------------------------------------------------------------------------
|
| All we have to do is configure CodeIgniter to send using the SendGrid
| SMTP relay:
*/
$config['protocol'] = 'smtp';
$config['smtp_port']    = '587';
$config['smtp_host']    = 'smtp.sendgrid.net';
$config['smtp_user']    = 'yourusername';
$config['smtp_pass']    = 'yourpassword';
?>

В контроллере :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->library('email');

        $this->email->from('test123@gmail.com', 'John');
        $this->email->to('test123@gmail.com');
        $this->email->subject('Test Email using SendGrid');
        $this->email->message('This email was delivered by your friends at SendGrid');

        $this->email->send();

        echo $this->email->print_debugger();

        $this->load->view('welcome_message');
    }
}
?>

Но мне нужно отправить почту через ключ API. Есть ли возможность сделать.

Спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Загрузите PHP sendgrid pach из ЗДЕСЬ

Поместите его в нужную папку внутри root.

N: B Если вы используете composer для Codeigniter, вы можете добавить, как показано ниже, и вы можете обновить зависимость, используя composer update, и он загрузит пакет с вашей папкой Vender.

{
  "require": {
    "sendgrid/sendgrid": "~7"
  }
}

После того, как go сделано внутри поставщика / sendgrid- php папка

do composer install внутри этой папки для установки зависимости для текущей библиотеки.

Вы можете использовать библиотеку в своем контроллере следующим образом.

    require FCPATH .'vendor/sendgrid-php/sendgrid-php.php';

    $email = new \SendGrid\Mail\Mail();
    $email->setFrom("test@example.com", "Example User");
    $email->setSubject("Sending with SendGrid is Fun");
    $email->addTo("test@example.com", "Example User");
    $email->addContent(
        "text/plain", "and easy to do anywhere, even with PHP"
    );
    $email->addContent(
        "text/html", "<strong>and easy to do anywhere, even with PHP</strong>"
    );
    $sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
    try {
        $response = $sendgrid->send($email);
        print $response->statusCode() . "\n";
        print_r($response->headers());
        print $response->body() . "\n";
    } catch (Exception $e) {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    }

Вы получите больше библиотечной документации ЗДЕСЬ

...