Есть ли способ удалить обратный путь, который kohana устанавливает в электронных письмах?

Наш сайт использует Kohana а также php и мы используем sendgrid отправлять транзакционные электронные письма. С gmail у нас масса спамовых проблем, и мы отправляем только подписку по электронной почте, и у нас высокий уровень открытия. Одна из потенциальных проблем заключается в том, что в наших электронных письмах, по-видимому, есть два пути возврата в заголовке:

  1. Устанавливается нами в Kohana
  2. вставляется sendgrid,

Sendgrid говорит, что когда они отправляют сообщение, они берут этот "конверт из" ради управления Bounce. Но мы не можем найти способ, чтобы Кохана не вставила это. Какие-либо предложения? ПРИМЕР КОДА: Kohana использует Swift для отправки почты. Как мы их отправляем сейчас ниже. Мы пытались удалить ответ через

$message->headers->set('reply-to', '');

но это не похоже на работу. Как ни странно, установка непустого значения меняет его, но, похоже, не существует способа полностью избавиться от него.

Полный код этой функции:

/**
 * Send an email message.
 *
 * @param   string|array  recipient email (and name), or an array of To, Cc, Bcc names
 * @param   string|array  sender email (and name)
 * @param   string        message subject
 * @param   string        message body
 * @param   boolean       send email as HTML
 * @param   string        Reply To address. Optional, default null, which defaults to From address
 * @return  integer       number of emails sent
 */
public static function send($category, $to, $from, $subject, $message, $html = FALSE, $replyto = null)
{
    // Connect to SwiftMailer
    (email::$mail === NULL) and email::connect();

    // Determine the message type
    $html = ($html === TRUE) ? 'text/html' : 'text/plain';

// Append mixpanel tracking pixel to html emails
if ($html) {
  $mixpanel_token = FD_DEV_MODE ? "08c59f4e26aa718a1038459af75aa559" : "d863dc1a3a6242dceee1435c0a50e5b7";
  $json_array = '{ "event": "e-mail opened", "properties": { "distinct_id": "' . $to . '", "token": "' . $mixpanel_token . '", "time": ' . time() . ', "campaign": "' . $category . '"}}';
  $message .= '<img src="http://api.mixpanel.com/track/?data=' . base64_encode($json_array) . '&ip=1&img=1"></img>';
}

    // Create the message
    $message = new Swift_Message($subject, $message, $html, '8bit', 'utf-8');

// Adding header for SendGrid, added by David Murray
$message->headers->set('X-SMTPAPI', '{"category" : "' . $category . '"}');

    if (is_string($to))
    {
        // Single recipient
        $recipients = new Swift_Address($to);
    }
    elseif (is_array($to))
    {
        if (isset($to[0]) AND isset($to[1]))
        {
            // Create To: address set
            $to = array('to' => $to);
        }

        // Create a list of recipients
        $recipients = new Swift_RecipientList;

        foreach ($to as $method => $set)
        {
            if ( ! in_array($method, array('to', 'cc', 'bcc')))
            {
                // Use To: by default
                $method = 'to';
            }

            // Create method name
            $method = 'add'.ucfirst($method);

            if (is_array($set))
            {
                // Add a recipient with name
                $recipients->$method($set[0], $set[1]);
            }
            else
            {
                // Add a recipient without name
                $recipients->$method($set);
            }
        }
    }

    if (is_string($from))
    {
        // From without a name
        $from = new Swift_Address($from);
    }
    elseif (is_array($from))
    {
        // From with a name
        $from = new Swift_Address($from[0], $from[1]);
    }

    // Reply To support, not standard in Swift, added by Soham
    if (!$replyto) $replyto = $from;

    $message->setReplyTo($replyto);

    return email::$mail->send($message, $recipients, $from);
}

2 ответа

Это на самом деле не вопрос о Kohana, а скорее вопрос о Swiftmailer, поскольку Swiftmailer не входит в стандартную комплектацию Kohana Framework. Согласно документации Swiftmailer вы можете установить / получить Return-Path явно:

$message->setReturnPath('bounces@address.tld');

Надеется, что это помогает!

Я просто хочу сказать спасибо за то, что вы предоставили мне это решение, косвенно..

    // Adding header for SendGrid, added by David Murray
$message->headers->set('X-SMTPAPI', '{"category" : "INSERT CATEGORY HERE"}');

Документация по использованию X-SMTPAPI с сайта Sendgrid - отстой.

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