List-Unsubscribe

Тема в разделе "Модули и дополнения", создана пользователем snapius, 5 июл 2021.

  1. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Добрый день, знатоки!
    Бьюсь не первый день, не могу добиться чтобы при отправке письма был заголовок
    List-Unsubscribe. Пробовал разные варианты, ничего не помогает.
    Стоит opencart 2.2.0, PHPMailer.
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    Что где пробовали. Пишите решение, подправим.
     
  3. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Добавлял в phpmailer.php
    $mail->AddCustomHeader("List-Unsubscribe: <mailto:info@example.com?subject=Unsubscribe>, <http://example.com/unsubscribe.php?mailid=1234>");
    выдает ошибку при отправке.
    Добавил в код такую штуку, но не знаю что с ней делать:
    public function addCustomHeader($name, $value = null)
    {
    if (null === $value && strpos($name, ':') !== false) {
    //Value passed in as name:value
    list($name, $value) = explode(':', $name, 2);
    }
    $name = trim($name);
    $value = (null === $value) ? '' : trim($value);
    //Ensure name is not empty, and that neither name nor value contain line breaks
    if (empty($name) || strpbrk($name . $value, "\r\n") !== false) {
    if ($this->exceptions) {
    throw new Exception('Invalid header name or value');
    }

    return false;
    }
    $this->CustomHeader[] = [$name, $value];

    return true;
    }
     
  4. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    $mail = new PHPMailer();
    .........
    ..........
    $mail->Subject = 'List-Unsubscribe';

    $mail->send();
     
    snapius нравится это.
  5. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Я так понимаю это добавить в phpmailer.php?
    В любое место?
    Где точки что то нужно добавить?
     
  6. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    нет
    это пример как добавить заголовок
    это файл с классом?
    добавлять заголовок, нужно не в класс, а там где этот класс вызывается и отправляется сообщение
     
  7. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Получается system/library/mail.php или опять не попал? :)
     
  8. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    это родной класс движка для отправки почты
    вы же пишите что используете PHPMailer
     
  9. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Добавил, получилось вот что:
    |To:мыло@mail.ru
    |From:почта
    |Subject:List-Unsubscribe
    |Message-ID:<LLNVHQbmlLgJEQC88LDFohHJK5gKOPON99UtEJHFs@почта>
    |X-Mailer:pHPMailer=206.5.0=20(https://github.com/PHPMailer/PHPMailer)
    |MIME-Version:1.0
    |Content-Type:multipart/alternative=3B=20boundary=3D"b1_LLNVHQbmlLgJEQC88L
     
  10. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    что добавил\куда добавил?
     
  11. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Добавил в модификатор phpmailer -
    $mail->Subject = 'List-Unsubscribe';
     
  12. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    покажите модификатор
     
  13. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Добавил в модификатор:
    $mail->AddCustomHeader("List-Unsubscribe: <mailto:info@example.com?subject=Unsubscribe>, <http://example.com/unsubscribe.php?mailid=1234>");
    Вышло такое, получается прошло?
    |To:почта@mail.ru
    |From:<почта>
    |Subject:=3D?UTF-8?B?0YLQtdGB0YI=3D?=3D
    |Message-ID:<F5scRTMeZyZ4058G6vVFFuAqSqtqCyN0TDEtcUT6OcQ@www.почта
    >
    |X-Mailer:pHPMailer=206.5.0=20(https://github.com/PHPMailer/PHPMailer)
    |List-Unsubscribe:<mailto:info@почта?subject=3DUnsubscribe>,=20<ht
    tps://почта/newsletter>

    |MIME-Version:1.0
    |Content-Type:multipart/alternative=3B=20boundary=3D"b1_F5scRTMeZyZ4058G6v
    VFFuAqSqtqCyN0TDEtcUT6OcQ";
     
  14. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Пытаюсь добавить в admin/controller/marketing/contact.php - List-Unsubscribe что бы заголовок добавлялся только при отправке из маркетинг/почта, выдает ошибку.
    код:
    foreach ($emails as $email) {
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $mail = new Mail();
    $mail->protocol = $this->config->get('config_mail_protocol');
    $mail->parameter = $this->config->get('config_mail_parameter');
    $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
    $mail->smtp_username = $this->config->get('config_mail_smtp_username');
    $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
    $mail->smtp_port = $this->config->get('config_mail_smtp_port');
    $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

    $mail->setTo($email);
    $mail->setFrom($store_email);
    $mail->setSender(html_entity_decode($store_name, ENT_QUOTES, 'UTF-8'));
    $mail->setSubject(html_entity_decode($this->request->post['subject'], ENT_QUOTES, 'UTF-8'));
    //$mail->AddCustomHeader('List-Unsubscribe: <mailto:info@test.ru?subject=Unsubscribe>, <https://www.test.ru/newsletter>');
    $mail->setHtml($message);
    $mail->send();

    Что ни так, подскажите пожалуйста.
     
  15. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Что-то в делаете не та к

    AddCustomHeader принимает 1 или два параметра

    header и value

    $mail->AddCustomHeader('List-Unsubscribe', '<mailto:info@test.ru?subject=Unsubscribe><https://www.test.ru/newsletter>');

    как вариант
    или
    $mail->AddCustomHeader('List-Unsubscribe : <mailto:info@test.ru?subject=Unsubscribe><https://www.test.ru/newsletter>');
     
  16. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Не-а, не проходит, ругается.
    www.test.ru [Wed Jul 07 16:25:49 2021] [error] [pid 23193] sapi_apache2.c(325): [client test:36402] PHP Fatal error: Call to undefined method Mail::AddCustomHeader() in public_html/admin/controller/marketing/contact.php on line 253
    www.test.ru [Wed Jul 07 16:26:41 2021] [error] [pid 4443] sapi_apache2.c(325): [client test:39758] PHP Fatal error: Call to undefined method Mail::AddCustomHeader() in public_html/admin/controller/marketing/contact.php on line 253
     
  17. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
  18. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Не понял вопроса. Вам версия phpmailer нужна?
     
  19. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Дальше разговор бесмыслен

    Форум - не сделай за меня
    Форум - помоги разобраться

    Мне не нужна версия
    Если пишет -нет метода, так найдите.. установите оновленную версию и т.д.

    Все вам пишет в коде ошибок
     
    snapius нравится это.
  20. snapius

    snapius Пользователь

    Сообщения:
    144
    Симпатии:
    1
    Вот за это спасибо!