我正试图从我的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']="rn";
?>
请帮帮我。先进谢谢。
如果你使用自己的域名在网上上传代码,那么为什么你使用谷歌的邮件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故障诊断文档对诊断您的问题很有用。