Ответ 1
Я получил это сообщение с таймаутом, пока не добавил строку: -
$this->email->set_newline("\r\n");
У меня установлен мой хост как ssl://email-smtp.us-east-1.amazonaws.com
Я думаю, что вчера Amazon объявила о поддержке SMTP для SES (Simple Email Service).
Я пытался отправить SMTP-адрес электронной почты с помощью Codeigniter без везения.
У меня есть проверенный отправитель, и все выглядит хорошо:
$this->load->library('email');
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'email-smtp.us-east-1.amazonaws.com',
'smtp_user' => 'SMTP USERNAME',
'smtp_pass' => 'SMTP PASSWORD',
'smtp_port' => 465,
'mailtype' => 'html'
);
$this->email->initialize($config);
$this->email->print_debugger();
$this->email->from('[email protected]', 'Test From');
$this->email->to('[email protected]', 'Test To');
$this->email->subject('Test');
$this->email->message('test');
$this->email->send();
Я пробовал использовать smtp_host:
Когда я возвращаюсь к print_debugger(), я получаю:
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-194655181
hello: 421 Timeout waiting for data from client.
Эти тесты выполняются на сервере mediatemple (gs).
Я получил это сообщение с таймаутом, пока не добавил строку: -
$this->email->set_newline("\r\n");
У меня установлен мой хост как ssl://email-smtp.us-east-1.amazonaws.com
public function enviar_email($para, $assunto, $mensagem, $formato='html'){
$this->CI->load->library('email');
$config['mailtype'] = $formato;
$config['useragent'] = 'Post Title';
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'tls://email-smtp.us-east-1.amazonaws.com';
$config['smtp_user'] = 'smtpuser';
$config['smtp_pass'] = 'smtppass';
$config['smtp_port'] = '465';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n";
$this->CI->email->initialize($config);
$this->CI->email->from('Your Verified Sender Email', 'Post Title');
$this->CI->email->to($para);
$this->CI->email->subject($assunto);
$this->CI->email->message($mensagem);
if($this->CI->email->send()):
return TRUE;
else:
$this->CI->email->print_debugger();
endif;
}
Настройка, которая работала для меня, выглядит следующим образом:
$test_config['protocol'] = 'smtp';
$test_config['smtp_host'] = 'ssl://email-smtp.us-east-1.amazonaws.com';
$test_config['smtp_port'] = '465';
$test_config['smtp_user'] = 'XXXXXXXXXXXXXXXXXXX';
$test_config['smtp_pass'] = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY';
$test_config['newline'] = "\r\n";
$this->email->initialize($test_config);
$this->email->from('[email protected]', 'From at Test.com');
$this->email->to('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
Символ новой строки должен быть установлен в "\ r\n" и может поставить ставку в конфигурационном файле, если он правильно установлен как "\ r\n" , а не "\ r\n" , как указано выше.
Мне также нужно было добавить строку
$config['smtp_crypto'] = 'tls';
в мой конфигурационный массив