SMTPプロトコルを使用してcakephpでメールを送信しようとしています。
これは私のemail.phpです:
class EmailConfig {
public $smtp = array(
'transport' => 'Smtp',
'from' => array('account@mail.sk' => 'Me'),
'host' => 'ip_address',
'port' => 1234,
'timeout' => 30,
'username' => 'account',
'password' => 'password',
/* dont know what these parameters below are for */
'client' => null,
'log' => true,
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);
これは私がテストに使用する関数です(リンクをクリックすると、ダミーのメールが送信されます):
public function testSendEmail() {
$this->autoRender = false;
$email = new CakeEmail('smtp');
$email->from(array('account@mail.com' => 'Test'));
$email->to('me@gmail.com');
$email->subject('Test subject');
$email->send('Dummy post');
}
私のコードは大丈夫だと思います(私たちのオフィスではGmailが制限されているため、試してみませんでしたが、Gmailの設定では試せませんでした)。リンクをクリックした後($ this-> Html-> link('link'、array('controller' =>'users'、'action' =>'send_mail'));)何も起こりません(サイトが更新されます) tmp / error.logでも、エラーは発生しません。
私のポートは正しくないと思います。(しかし、あなたに起こるであろう他の理由は、ありがたいです)
少し掘り下げた後、これを送信する必要があるホストを見つけました。私の質問は次のとおりです。
メールサービス(Outlook 2007)がメッセージの送信に使用しているポートを見つけるにはどうすればよいですか?
私が試したこと:
http://www.authsmtp.com/outlook-2007/alternate-port.htmlですが、画像2以降のすべてのダイアログは画像とは異なります。
また、コマンドラインでnetstat -aを試しましたが、OUTLOOKに対応する2つのポートのいずれも機能しませんでした。
その他の注意事項:
- このアプリをローカルホストでコーディングします(xampp-> apache)
- この「extension=php_openssl.dll」行をphp.iniに追加しました(これはいくつかのチュートリアルで提案されました)が、変更は発生しませんでした(エラーもメールもありません)
アップデート:
関数の名前を「test_send_email」に変更しましたが、更新されなくなりましたが、自動レンダリングを削除してMVCにtest_send_email.ctpビューを追加すると、次のエラーが表示されます。
SMTPタイムアウト。エラー:内部エラーが発生しました。
だから私は正しいと思います、そして私は正しいポートを持っていません。