我正试图从我的Codeigniter项目发送电子邮件.它在我的本地服务器XAMP上工作.但不能在在线服务器上工作


I am trying to send email from my Codeigniter project. It worked on my localserver XAMP. But not working on online server

我正试图从我的Codeigniter项目发送电子邮件。它在我的本地服务器XAMP上工作。但是不能在在线服务器上工作

显示此错误…

遇到PHP错误严重性:警告消息:fsockopen():无法连接到ssl://smtp.googlemail.com:465(套接字操作试图连接到不可达的网络)文件名:libraries/Email.php行号:1690

My email config file application/config/email.php is…

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 $config['protocol']='smtp';
 $config['smtp_host']='ssl://smtp.googlemail.com';
 $config['smtp_port']='465';
 $config['smtp_timeout']='30';
 $config['smtp_user']='********@gmail.com';
 $config['smtp_pass']='*******';
 $config['charset']='utf-8';
 $config['newline']="'r'n";
 ?>

请帮帮我。先进谢谢。

如果你使用自己的域名在网上上传代码,那么为什么你使用谷歌的邮件id发送邮件。为什么不使用自己的网络邮箱呢?

下面的代码是为我从我自己的域发送邮件。在你的控制器中写这段代码,或者在你的配置中只写$config,其余的代码在你的控制器中。

$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'UTF-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';
$this->load->library('email', $config);
$this->email->from(ADMIN_EMAIL_ID, MY_DOMAIN);
$this->email->bcc(BCC_EMAIL_ID, MY_DOMAIN);
$this->email->to($targeEmail);
$this->email->subject(EMAIL_SUBJECT);
$this->email->message(EMAIL_MESSAGE);
if ($this->email->send())
{
   $status = 'send';
}
else
{
   $status = 'notsend';
}                

这意味着你的DNS不工作(它不知道smtp.googlemail.com在哪里),或者它知道它在哪里,但它没有响应(不太可能),或者它正在响应,但你的服务器被阻止访问它。对于isp(例如GoDaddy)来说,阻止任何连接到SMTP目的端口(如25、465和587)的出站电子邮件是很常见的。有时这个限制只适用于PHP二进制文件,其他程序(如telnet)也可以。

虽然不完全是一回事,但您可能会发现PHPMailer故障诊断文档对诊断您的问题很有用。