У меня странная проблема и я не знаю, как ее исправить. Мой код выглядит точно, но система пытается подключить собственный сервер (localhost of server) вместо правильного SMTP-адреса.
Вот мой код:
$config['protocol'] = "smtp";
$config['smtp_host'] = "smtp.mandrillapp.com";
$config['smtp_port'] = "587";
$config['smtp_user'] = "[email protected]";
$config['smtp_pass'] = "mypassword";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$CI -> email -> initialize($config);
$CI -> email -> from('mail@address');
$CI -> email -> reply_to('mail@address');
$CI -> email -> to($email);
$CI -> email -> subject('Some Topic');
$CI -> email -> message('Some message');
$CI -> email -> send();
Когда я запускаю этот скрипт, я получаю этот ответ:
220-server.mydomain.com ESMTP Exim 4.86 #2 Sun, 08 Nov 2015 11:31:39 +0000 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
hello: 250-server.mydomain.com Hello li1430-121.members.linode.com [85.90.227.125]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
Таким образом, он получает ошибку входа, потому что пытается подключиться к неправильному серверу. Я занимался исследованиями в Интернете, но не мог найти решения об этом.
Заранее спасибо.
Вы совершенно не правы. Это означает, что вы неправильно используете код библиотеки электронной почты.
$CI ->
$CI → email ->
Правильный код выглядит так
$config['protocol'] = "smtp";
$config['smtp_host'] = "smtp.mandrillapp.com";
$config['smtp_port'] = "587";
$config['smtp_user'] = "[email protected]";
$config['smtp_pass'] = "mypassword";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$this->email->initialize($config);
$this->email->from('mail@address');
$this->email->reply_to('mail@address');
$this->email->to($email);
$this->email->subject('Some Topic');
$this->email->message('Some message');
$this->email->send();