Как задать дополнительную информацию в заголовке письма при отправке письма в GMAIL

Я использую библиотеку электронной почты CodeIgnitor для отправки электронной почты. Я хочу добавить "EmployeeId:" в заголовок письма, а затем отправить письмо на адрес электронной почты Gmail.

Как я могу добавить эту информацию в заголовок?

3 ответа

Библиотека электронной почты Codeigniter не позволяет добавлять дополнительную информацию заголовка. Для этого мы можем создать собственный класс библиотеки, унаследовав системный класс электронной почты следующим образом:

сохраните MY_Email.php в папке application/library /

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

class MY_Email extends CI_Email {

    public function __construct() {
        parent::__construct();
    }

    public function add_custom_header($header_key, $header_value) {
        $this->_set_header($header_key, $header_value);
    }
}
/* End of file MY_Email.php */

Этот библиотечный класс наследует класс электронной почты codeigniter и добавляет метод add_custom_header() с двумя аргументами, называемыми ключом заголовка и значением заголовка, и объединяют его в информацию заголовка для электронной почты.

использование:

$this->email->add_custom_header($header_key, $header_value);

Вы используете функцию mail()?

$header = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail('mail@gmail.com', 'Subject', 'Message', $header);

Обновить:

В CodeIgnitor вам необходимо расширить класс EMail с помощью собственного метода set_header. Отсюда вы можете вызвать скрытый метод _set_header().

Вы можете взглянуть на эти точные объяснения и примеры:

Это зависит от класса / функции, которую вы используете для отправки электронной почты.

Используя простой mail Функция, которую вы можете сделать это, установив additional_headers параметр: http://php.net/manual/en/function.mail.php

но я бы порекомендовал вам отправлять электронные письма с SwiftMailer ( http://swiftmailer.org/) - играть с заголовками так же просто, как:

// adding new text header
$message = Swift_Message::newInstance();
$headers = $message->getHeaders();
$headers->addTextHeader('Your-Header-Name', 'the header value'); 

// changing value
$subject = $message->getHeaders()->get('Subject');
$subject->setValue('new subject');

Больше на: http://swiftmailer.org/docs/headers.html

Другие вопросы по тегам