1

CodeIgniter で構築したアプリケーションから Gmail SMTP サーバーを使用してメールを送信しようとしていますが、うまくいきませんでした。ユーザーとして Gmail アカウントを使用しましたが、機密保持のためにここで構成を変更しています。以下のコードを使用しました

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'myemail@gmail.com';
$config['smtp_pass'] = 'mypassword';
$config['mailtype'] = 'html';


//load email library
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$message = "Please validate your registration using this link: $link.";
$this->email->to($email);
$this->email->from('myemail@gmail.com', 'John Doe');
$this->email->subject('Validate Your Registration');
$this->email->message($message);
if($this->email->send())
{
    $this->session->sess_destroy();
    redirect(base_url()."thanks/indi/$id");
}
else
{
    show_error($this->email->print_debugger());
}

毎回表示される 2 つのエラー メッセージを次に示します。

PHP エラーが発生しました

重大度: 警告

メッセージ: mail(): 「ssl://smtp.googlemail.com」のポート 465 でメールサーバーに接続できませんでした。php.ini の「SMTP」と「smtp_port」の設定を確認するか、ini_set() を使用してください

ファイル名: libraries/Email.php

ライン番号: 1553

エラーが発生しました

PHP mail() を使用して電子メールを送信できません。この方法を使用してメールを送信するようにサーバーが構成されていない可能性があります。

From: "John Doe" Return-Path: Reply-To: "myemail@gmail.com" X-Sender: myemail@gmail.com X-Mailer: CodeIgniter X-Priority: 3 (Normal) Message-ID: <52333cd2aa4fb@ gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit =?utf-8?Q?Validate_Your_Registration?= このリンクを使用して登録を検証してください: http://mywebsite.com/registration/index.php/validate/32/1afa34a7f984eeabdbb0a7d494132ee5 .

ポートとして587 、ホストとしてssl://smtp.googlemail.comを試し、さまざまな組み合わせを試してみました。通常の配列コンストラクターを使用して構成配列も宣言しようとしました (例: $config = array('protocol' => 'smtp', ...) / $config = Array('protocol' => 'smtp', .. .) ) . ポートを一重引用符で囲み、構成に smtp_timeout を追加してみました。

また、このページの内容に従って php.ini を設定しまし : http://adisembiring.wordpress.com/2010/01/17/sending-gmail-email-using-codeigniter/しかし、私はこの行を見つけることができません: extension=php_smtp.dll上記のサイトで言及されていたので、[メール機能]部分を次のように設定しました

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = ssl://smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 465

これを機能させるにはどうすればよいですか?私がどこに欠けていたのか、何かアイデアはありますか?ありがとう。どんな助けでも大歓迎です:)

4

3 に答える 3

0

$configこれを配列に追加してみてください:

$config['starttls'] = TRUE;
于 2013-09-13T17:40:58.040 に答える
0

$config 配列を次のように変更します

$config['smtp_host']  = 'ssl://smtp.googlemail.com';
于 2013-11-23T15:30:19.247 に答える
0

2 段階認証を使用している場合、アプリケーション固有のパスワードを生成しましたか?

于 2013-09-13T20:09:33.173 に答える