Я новичок в CI и PHP. В настоящее время я использую xammp для запуска PHP, Apache и MySql. Теперь я пытаюсь отправить электронное письмо с помощью CI. Но я постоянно получал ошибку, как показано ниже.
Возникла ошибка PHP
- не может отправлять электронную почту по адресам в моем собственном домене
- Как найти только «новые» сообщения при использовании функций IMAP PHP для почтового ящика POP3?
- PHPMailer: использование удаленного SMTP-сервера работает под локальным хостом, соединение отклонено (111) на удаленном сервере
- Отправить письмо в php с прикрепленным файлом, который создается из базы данных
- Laravel mail: передать строку вместо представления
Уровень важности: предупреждение
Сообщение: fsockopen (): не удалось подключиться к ssl: //smtp.googlemail.com: 465 (попытка подключения не удалась, потому что связанная сторона не ответила должным образом через некоторое время или установив соединение не удалось, поскольку подключенный хост не смог отвечать. )
Имя файла: libraries / Email.php
- Отправить письмо с PHP из html-формы на submit с тем же скриптом
- PHP html электронная почта, используя html-шаблон
- HTML-адрес электронной почты просто показывает код
- Отправить письмо с учетной записью Google с помощью CodeIgniter
- Swiftmailer: невозможно установить соединение с узлом smtp.gmail.com
Номер строки: 1689
У меня google около трех часов и до сих пор не найдено решение. Я уже включил ' openssl
' в Apache. Я хотел бы описать кодирование моего класса контроллера электронной почты.
// Код функции «Индекс» контроллера электронной почты
$this->load->library('email'); $this->email->set_newline("\r\n"); $config['charset'] = 'utf-8'; $config['wordwrap'] = TRUE; $config['mailtype'] = 'html'; $config['protocol'] = 'smtp'; $config['smtp_port'] = 465; $config['smtp_host'] = 'ssl://smtp.googlemail.com'; $config['smtp_user'] = "something@gmail.com"; $config['smtp_pass'] = "xxx"; $this->email->initialize($config); $this->email->from('something@gmail.com', 'NayLinAung'); $this->email->to('something@gmail.com'); $this->email->subject('This is an email test'); $this->email->message("It is working, Great! You will be successful."); if ($this->email->send()) { echo "Email was successfully sent."; } else { show_error($this->email->print_debugger()); }
Когда я изменяю «smtp» на «mail», ошибок не возникает, но письмо не отправляется. Кроме того, я отключил брандмауэр Windows.
Пожалуйста, предложите любые решения для этой ошибки.
То, что я нашел ранее:
Чтобы использовать Google SMTP в CodeIgniter, вам необходимо внести 2 (два) изменения в свой аккаунт учетной записи Gmail: (NB. Имейте в виду, что злоумышленник теперь может взломать ваш аккаунт – Google)
- Установите двухэтапную аутентификацию .
- Разрешить менее безопасные приложения : ВКЛ (или Включить)
Теперь используйте 'smtp_host'
как ssl://smtp.gmail.com
вместо smtp.googlemail.com
Этот вопрос также обсуждался в этой ссылке .
Надеюсь, эта помощь.
если вы можете использовать try с этой библиотекой IMAP
Электронная библиотека Codeigniter
вы можете подключиться к этому коду
$config['protocol'] = "imap"; $config['imap_host'] = 'xxx.xxx.xxx.xxx'; $config['imap_user'] = 'user@domain.com'; $config['imap_pass'] = 'Jk98S**Jlk'; $config['imap_port'] = '993'; $config['imap_mailbox'] = 'INBOX'; $config['imap_path'] = '/imap/ssl/novalidate-cert'; // use this string if you do not want use ssl $config['imap_server_encoding'] = 'utf-8'; $config['imap_attachemnt_dir'] = './tmp/'; $this->load->library('email', $config); $this->email->from($frommail); $this->email->to($tomail); $this->email->subject('Email Test'); $this->email->message('Testing the email class.'); $this->email->send(); echo $this->email->print_debugger();
вы также можете использовать SMTP, но если у вас есть разрешение, я советую вам использовать IMAP . он имеет больше функций и он новее, чем SMTP …