отправка почты с использованием бесплатной функции codignator, доставляемой как спам

0

Я использую frameworkignign framework. При отправке писем с использованием почтовых функций codeigniter почта поставляется как спам, я не знаю, почему это происходит, я использую код как:

    $this->load->library('email');
    if($fromname==''){$fromname='MySystem';}
    if($from==''){$from='[email protected]';}
    if($reply==''){$reply=$from;}
    $config = array(
    'protocol' => 'smtp',
    'smtp_host' => host,
    'smtp_port' => port,
    'smtp_crypto' => 'ssl',
    'smtp_user' => user_nam,
    'smtp_pass' => pwd,
    'mailtype'  => 'html', 
    'charset'   => 'utf-8',
    'wordwrap' => TRUE
   );
    $this->email->initialize($config);
    $this->email->from($from, $fromname);
    $this->email->reply_to($reply, $fromname);
    foreach($result as $row){
    $this->email->to($to);
    $this->email->subject($subject);
    $this->email->message($message1);

    $this->email->send();
    }

Используя этот код, почта отправляется группе пользователей. Эти письма принимаются в виде спам-писем. Это из-за некоторой ошибки в коде или проблема с сервером?

Теги:
codeigniter
sendmail

2 ответа

0
Лучший ответ

Основная проблема, скорее всего, from вашего адреса. При отправке электронной почты вы говорите, что отправитель [email protected]. Когда ваша электронная почта будет получена, служба будет искать DNS-запись Gmail SPF (http://en.wikipedia.org/wiki/Sender_Policy_Framework), чтобы узнать, является ли сервер, отправивший электронное письмо (ваш сервер) сервером, который Gmail говорит, разрешенному отправителю, которого, конечно же, нет. Поскольку эта проверка не удалась, письмо, скорее всего, попадет в спам.

Способ исправить это установить ваш from адреса реального домена, например [email protected]. Затем вам нужно установить запись SPF, чтобы ваш сервер был доверенным отправителем для этого домена. Есть куча учебников, чтобы помочь с этим, но вы могли бы просто использовать это как запись TXT на yourdomain.com:

v=spf1 ip4:<your server IP> ~all

Если вы отправляете электронное письмо с сайта yourdomain.com из других сервисов (например, Google Apps), вы также захотите добавить правила для этого.

Даже при этом ваши письма не гарантируются, чтобы не спамить. Если содержание сообщений является упрощенным и спам-подобным, или если вы не включаете ссылку для отмены подписки, вы также можете оказаться в спаме.

  • 0
    если $ from равен NULL, тогда только эта переменная устанавливается как: '[email protected]' if ($ from == '') {$ from='[email protected] ';}
  • 0
    Однако тот же принцип применим. Является ли электронная почта, которую вы отправляете, авторизованным отправителем, указанным в записи SPF на этом домене?
0

Хорошо, я получил это нормально, изменив $ config и initialize ($ config)

$config = array(
        'protocol' => 'smtp',
        'smtp_host' => $host,
        'smtp_port' => $port,
        'smtp_crypto' => $crypto,
        'smtp_user' => $user_nam,
        'smtp_pass' => $pwd,
        'mailtype'  => 'html', 
        'charset'   => 'utf-8',
        'wordwrap' => TRUE,
        'smtp_auth' => TRUE
       );

   $this->load->library('email', $config);
   $this->email->set_newline("\r\n");
   $this->email->initialize($config);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню