2

Xamppを使用していて、CodeIgniterを使用してメールを送信したいと思います。smtpを使用している場合はエラーが発生します:

メッセージ:fsockopen():ssl://smtp.googlemail.com:465に接続できません(ソケットトランスポート "ssl"が見つかりません-PHPを構成したときに有効にするのを忘れましたか?)ファイル名:library/Email。 php

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'gmail@gmail.com',
    'smtp_pass' => 'your_password'
);

$this->load->library('email', $config);
$this->email->set_newline("\r\n");   
$this->email->from('your@example.com', 'Your Name');
$this->email->to('(here I put my mail)@yahoo.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();

(line extension=php_openssl.dll is decomented)

これらの設定で:

$this->load->library('email');
$this->email->set_newline("\r\n");   
$this->email->from('your@example.com', 'Your Name');
$this->email->to('(here I put my mail)@yahoo.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();

メッセージが表示されます:メッセージは次のプロトコルを使用して正常に送信されました:メール

From: "Your Name" Return-Path:......。

しかし、私は何のメールも受け取りません。

何が問題ですか?

4

2 に答える 2

2
  1. mail()「メール」プロトコルは、サーバーのメールエージェントに送信するだけのPHPの機能を使用していることを意味します。「成功」とは、単に受け入れられたことを意味しますが、配信が試みられたことがあるかどうかを示すものではありません。メールエージェントがオフになっている、設定が間違っているなどの可能性があります。メールログを確認するか、おそらくホスティングプロバイダーに問い合わせる必要があります。
  2. の「from」アドレスを実際に使用している場合anything@example.com、メールが実際に通過することはないと思います。メール自体を受信できる実際のメールアドレスを使用してください。
  3. スパムフォルダを確認してください。
于 2013-02-22T18:54:45.293 に答える
0

私の少しを投入するだけです:


Gmailを使用した最初の例。行extension=php_openssl.dllのコメントを削除したばかりの場合は、テストする前にapacheを再起動する必要がある場合があります。特にWindowsシステムを使用している場合。それはまさに私が私のものを修正した方法でした。phpinfo()をチェックして、phpバージョンのsslサポートがあることを確認してください。xamppを使用していると仮定すると、それはそこにあるはずです。

また、FROMメールはGmailアカウントにすることをお勧めします。おそらくsmtp_userで使用されたものと同じです。メッセージには、必要な他の電子メール情報をいつでも含めることができます。送信者のメールアドレスを使用する代わりに、送信者に返信する場合は、Gmailアカウントを使用します。メッセージの本文に、メッセージの件名と同じ件名のmailtoリンクを含めることができます。例えば:

<a href="mail:email@stewardxpress.com?subject=From The User's Form" >Reply User</a>

リンク先のメールをクリックすると、OutlookやGmailで簡単に返信できます。少し風が強いかもしれませんが、それは機能し、私のメールがスパムフォルダに入るのを防ぎます


2番目の例では、ローカルホストでは機能しません。だから私はあなたがウェブホスティングアカウントを使用していると思います。一部のホストでは、fromフィールドで使用するSMTPサーバー、ユーザー名、およびパスワードを指定する必要があります。最も一般的なsmtpはsmtp.example.comです。IPも機能します。pingを実行してSMTPIPを取得してみてください(何らかの理由で、これが変更される可能性があることに注意してください)。それらを含めて試してみてください。


上記に加えて、サーバーで構成されているキャッチオールメールをチェックして、メールが届いたかどうかを確認します。自分に送ってみてください。スパムフォルダとジャンクフォルダを確認してください。メールは正常に送信され、後で配信するためにキューに入れられる可能性があります。ある種のサーバーの更新が必要になる場合があります。

于 2013-02-25T07:41:34.653 に答える