codeigniter
  • ssl
  • smtp
  • sparkpost
  • 2016-04-06 7 views 1 likes 
    1

    Я был успешно используя Mandrill отправить почту с моего сайта CodeIgniter, с этой конфигурацией:Как настроить Sparkpost SMTP в Codeigniter?

    $config['mailtype'] = "html"; 
    $config['protocol'] = 'smtp'; 
    $config['smtp_host'] = 'smtp.mandrillapp.com'; 
    $config['smtp_user'] = 'user'; 
    $config['smtp_pass'] = 'password'; 
    $config['smtp_port'] = '587'; 
    $this->email->initialize($config); 
    

    Но Mandrill не хочет делать transactionnal электронной почты, так что мне нужно перейти на SparkPost.
    Вот их директива: https://support.sparkpost.com/customer/en/portal/articles/1988470-smtp-connection-problems

    Я попробовал этот конфиг:

    $config['mailtype'] = "html"; 
    $config['protocol'] = 'smtp'; 
    $config['smtp_host'] = 'smtp.sparkpostmail.com'; 
    $config['smtp_user'] = 'user'; 
    $config['smtp_pass'] = 'password'; 
    $config['smtp_port'] = '587'; 
    $this->email->initialize($config); 
    

    Но не почта, где отправить, без ошибок. Так что я попытался добавить «TLS» в принимающем:

    $config['smtp_host'] = 'tls://smtp.sparkpostmail.com'; 
    

    И я получаю эту ошибку:

    Message: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
    error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
    Filename: libraries/Email.php
    Line Number: 1950

    Я получил ту же ошибку на порту 2525.

    Вот мой OpenSSL раздел в phpinfo на моем локальном сервере MAMP:

    OpenSSL support enabled
    OpenSSL Library Version OpenSSL 0.9.8zg 14
    July 2015 OpenSSL Header Version OpenSSL 0.9.8r 8 Feb 2011

    Но у меня такая же ошибка на моем сервере Debian, с phpinfo:

    OpenSSL support enabled
    OpenSSL Library Version OpenSSL 1.0.1e 11 Feb 2013
    OpenSSL Header Version OpenSSL 1.0.1e 11 Feb 2013
    Openssl default config /usr/lib/ssl/openssl.cnf

    Любые подсказки?

    Большое спасибо.

    +0

    Я бы сказал, что вам нужна версия 1.2 или даже v3. Проверьте [this] (http://stackoverflow.com/questions/29627991/1408f10bssl-routinesssl3-get-recordwrong-version-number-call-on-indy) q/a. – Tpojka

    ответ

    6

    Я был рядом:
    Sparkpost требуется tls и не ssl. Он должен быть установлен в параметрах, а не в URL-адресе сервера, чтобы он использовал STARTTLS. И, наконец, мне нужно было изменить значение новой строки по умолчанию. Так вот хорошая конфигурация:

    $config['mailtype'] = "html"; 
    $config['protocol'] = 'smtp'; 
    $config['smtp_host'] = 'smtp.sparkpostmail.com'; 
    $config['smtp_user'] = 'user'; 
    $config['smtp_pass'] = 'password'; 
    $config['smtp_crypto'] = 'tls'; 
    $config['smtp_port'] = '587'; 
    $condig['crlf'] = "\r\n"; 
    $config['newline'] = "\r\n"; 
    
    +0

    Извините, это было приложение-счет? У меня точно такая же проблема, когда вы переходите от мандрилла к sparkpost. Вышеупомянутое исправление в основном то, что у меня уже есть, и оно все еще не работает ... Какие-нибудь другие трюки? – suncat100

    +0

    Это сработало для меня: '$ this-> email-> set_newline (" \ r \ n ");'. По какой-то причине значения конфигурации для настройки, которые не применялись. – suncat100

    +0

    Спасибо! потраченные часы, пытаясь отладить это, и ваше решение сработало. –

    Смежные вопросы