2

我环顾四周,有很多关于这个问题的问题,但我想它们都有些具体,似乎没有我正在寻找的信息。

我们最近在我们的网站上添加了电子邮件功能,以便我们可以向注册、忘记密码等的人发送自动电子邮件。这已正确设置并且在 Localhost 上运行良好。

然后我们将该站点推送到 Web 服务器,但它无法正常工作。我们收到以下错误消息:

fsockopen() [function.fsockopen]:无法连接到 smtp.sendgrid.net:587(连接被拒绝)

其次是与依赖于上述连接发生的功能相关的一系列其他错误。我们尝试了端口 587、25 和 2525,但没有成功。

这是代码:

$this->load->library('email');

$this->email->initialize(array(
    'protocol' => 'smtp',
    'smtp_host' => 'smtp.sendgrid.net',
    'smtp_user' => 'username',
    'smtp_pass' => 'secretpwd',
    'smtp_port' => 587,
    'crlf' => "\r\n",
    'newline' => "\r\n",
    'mailtype' => 'html'
));

$this->email->from('info@domain.com', 'CompanyName');
$this->email->to($this->input->post('register_email')); 

$this->email->subject('Application Confirmation');

$this->email->message('Hello');

$this->email->send()
4

1 回答 1

4

您的域上有开放中继!!!!!!!如果您使用的是 postfix,请将您的主配置文件更新为此

smtpd_recipient_restrictions = 
    reject_unknown_recipient_domain
    permit_sasl_authenticated
    reject_unauth_destination #this is important
    permit 
    smtpd_sender_restrictions = reject_unknown_sender_domain

至于你的问题,给我看一些代码。仅从这一点很难得出什么是错的结论。

于 2012-12-06T16:26:34.907 回答