0

からメールを送信しようとするとlocalhost、すべて正常に動作します。しかし、アプリをサーバーにアップロードすると、メール機能が機能しなくなりました。Gmail アカウントを使用しています。

これが私のconfig/email.phpファイルです:

$config['useragent']        = 'CodeIgniter';        
$config['protocol']         = 'smtp';        
$config['mailpath']         = '/usr/sbin/sendmail';
$config['smtp_host']        = 'ssl://smtp.googlemail.com';
$config['smtp_user']        = 'myemail@gmail.com';
$config['smtp_pass']        = 'my_password';
$config['smtp_port']        = 465;
$config['smtp_timeout']     = 80;
$config['wordwrap']         = TRUE;
$config['wrapchars']        = 76;
$config['mailtype']         = 'html';
$config['charset']          = 'utf-8';
$config['validate']         = FALSE;
$config['priority']         = 3;
$config['crlf']             = "\r\n";
$config['newline']          = "\r\n";
$config['bcc_batch_mode']   = FALSE;
$config['bcc_batch_size']   = 200;


$config['sender_name']       = 'Name';
$config['from_email']       = 'myemail@gmail.com';
$config['to_email']       = 'myemail@gmail.com';
$config['email_subject']       = 'Email Subject';

そして、これがコントローラーでメールを送信した方法です。

$this->load->library('email');
$this->email->from($this->config->item('from_email'), $this->config->item('sender_name'));
$this->email->to($this->config->item('to_email'));
$this->email->subject($this->config->item('email_subject'));
$this->email->message($string);

if (!$this->email->send())
{
    $data['success'] = FALSE;           
}
else 
{
    $data['success'] = TRUE;            
}
$this->_example_output('layouts/sendemail_confirm.php', $data);

そして、これは私が受け取るエラーです:

PHP エラーが発生しました

重大度: 警告

メッセージ: fsockopen() [function.fsockopen]: ssl://smtp.googlemail.com:465 に接続できません (接続が拒否されました)

ファイル名: libraries/Email.php

ライン番号: 1689

PHP エラーが発生しました

重大度: 警告

メッセージ: fwrite() は、パラメーター 1 がリソースであると想定しています。ブール値が指定されています

ファイル名: libraries/Email.php

ライン番号: 1846

PHP エラーが発生しました

重大度: 警告

メッセージ: fgets() は、パラメーター 1 がリソースであると想定しています。ブール値が指定されています

ファイル名: libraries/Email.php

ライン番号: 1869

4

4 に答える 4

1

メッセージ: fsockopen() [function.fsockopen]: ssl://smtp.googlemail.com:465 に接続できません (接続が拒否されました)

サーバーの IP アドレスが、以前のスパム行為の試みにより、Google によってブラックリストに登録されている可能性があります... 共有ホスティング アカウントですか? クラウド ホスティング アカウントですか? 等?それらはすべて、このようなものに影響を受けやすい.

ドメイン名とアドレスからの逆引き DNS ルックアップの不一致があるか、ドメインの DNS に SPF ポリシー設定があり、Google がメールを受信できないか、ホスト名にエンベロープの問題があるか、127.0.0.1 を使用している可能性があります。発信元アドレスとして。

また、php.ini の設定をチェックして、両方のシステムで / または not-using を使用していることsendmail_from=、およびmail.add_x_header=同じ方法であることを確認してください。

于 2013-05-26T21:00:18.450 に答える
0

この構成オプションを使用します

    $config['protocol'] = 'smtp';
    $config['mail_path'] = 'ssl://smtp.googlemail.com';
    $config['smtp_host'] = 'ssl://smtp.googlemail.com';
    $config['smtp_port'] = 465;

メールライブラリをロードした後、この行を追加します

$this->load->library('email', $config);
$this->email->set_newline("\r\n");
于 2013-05-26T21:02:46.117 に答える