У меня есть код ниже, используя codeigniter,
$config['mailtype'] ='html';
$config['charset'] = 'iso-8859-1';
$config['protocol'] ='smtp';
$config['smtp_host'] ='mail.DomainName';
$config['smtp_user'] = "UserEmailId";
$config['smtp_pass'] = "UserPassword";
$config['smtp_port'] ='25';
$this->email->clear(TRUE);
$this->email->initialize($config);
$this->email->from($fromemail, $fromname);
$this->email->to( $email_to );
$this->email->return_path("BouceEmailId"); // I have made this function in system/library/email.php. Also changed the mail() -f field from _headers['from'] to _headers['return-path']
$this->email->subject( "Subject" );
$this->email->message( "This is test email" );
$this->email->send();
В приведенном выше коде он отправил электронное письмо. Но он удаляет заданный мной путь возврата и просто заменяет его адресом from.
Я прочитал несколько статей, в которых говорится, что SMTP устанавливает путь возврата, когда он доставляет.
Как мне установить Return Path, когда я использую аутентификацию SMTP?
SMTP не разрешено устанавливать пользовательский return_path для отклоненных писем. Он автоматически устанавливает return_path с адресом from при доставке.
Читать руководство CL Email Class
Параметры:
$ from (строка) — адрес электронной почты «От»
$ name (строка) — отображаемое имя «От»
$ return_path (строка) — необязательный адрес электронной почты для перенаправления недоставленной электронной почты на
Возвращает:
Экземпляр CI_Email (цепочка методов)
You can also set a Return-Path, to help redirect undelivered mail:
$this->email->from('[email protected]', 'Your Name', '[email protected]');
Других решений пока нет …