2

CakePhp 2.0 を使用して電子メール メッセージを送信しようとしています。私のコントローラーでは、このコードを使用します(問題ないことはわかっています。クックブックから取得しました):

App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail("myConfig");
$email->from(array('from@example.com' => 'From Example'));
$email->to($to);
$email->subject($msgtitle);
$ok = $email->send($content);

そしてapp/config/email.php私はこの設定を持っています:

<?php
class EmailConfig {
    public $myConfig = array(
        'host' => 'mail.myServer.com',
        'port' => 587,
        'username' => 'mYaccount',
        'password' => 'secret',
        'transport' => 'Smtp'
    );
}
?>

問題は、サーバーが次のように応答することです。

SMTP Error: 530 5.7.0 Must issue a STARTTLS command first.

アカウント名とパスワードは正しいです。サンダーバードにロードすると構成が機能し、smtpサーバーへの接続は次のように設定されます。

サーバー名 : mail.myServer.com
ポート : 587
接続セキュリティ : STARTTLS
認証 : 通常のパスワード
ユーザー名 : mYaccount

4

6 に答える 6

2

SMTPがtlsをサポートしていることを確認しますか?ehloコマンドを送信してみてください。

telnet 1.2.3.4 25
ehlo testing

次のように表示されます。

250-STARTTLS

リストにあります。

表示されている場合は、有効になっていない可能性があります。有効にする必要があります。表示されない場合は、追加する必要があります。

于 2012-02-18T23:29:20.377 に答える
2
public $smtp = array(
        .................,
        'tls'   =>  true
    );
于 2016-01-21T10:52:48.037 に答える
1

以下のコードは、CakePHP SMTP Email を使用して GoDaddy サーバー上で動作しています:

config フォルダー内の Email.php ファイル - CakePHP 2.4 MVC バージョン:

    // for Live Server GoDaddy.com domain
    public $smtp = array(
        'transport' => 'Smtp',
        'host' => 'ssl://smtpout.asia.secureserver.net', <-- important
        'port' => 465, <-- important
        #'timeout' => 30,
        'username' => 'no-reply@godaddy-domain.com',
        'password' => 'password',
        #'tls' => false,
        #'log' => false,
        'charset' => 'utf-8',
        'headerCharset' => 'utf-8',
    );

以下はコントローラーファイルのコードです。

    // Controller Code to Send Actual Email
    // email configuration
    $Email = new CakeEmail('smtp');
    $Email->from(array('no-reply@godaddy-domain.com' => 'App Name'))
        ->sender('no-reply@godaddy-domain.com', 'App Name')
        ->to(array($email))
        ->bcc(array('xyz@xyz.com'))
        ->subject('Test Email from GoDaddy')
        ->emailFormat('both')
        ->send($hash.'<br><strong>My</strong> message 45 قبل الميلاد، مما يجعله أكثر من');

それが役に立てば幸い !

ありがとう

于 2015-04-21T08:21:52.427 に答える
0

CakePHPクックブックから:

GMail などの SSL SMTP サーバーを構成できます。これを行うには、ホストのプレフィックスに「ssl://」を配置し、それに応じてポート値を構成します。例:

class EmailConfig {
public $gmail = array(
    'host' => 'ssl://smtp.gmail.com',
(...)
于 2012-02-18T14:19:46.657 に答える
0

次のことを試してください。

 <?php
class EmailConfig {
    public $myConfig = array(
        'host' => 'ssl://mail.myServer.com',
        'port' => 465,
        'username' => 'mYaccount',
        'password' => 'secret',
        'transport' => 'Smtp'
    );
}
?>
于 2012-06-21T18:11:03.360 に答える
0

あなたのことを確認してください

php_openssl.dll

拡張機能が実行されています。

ファイルで確認できphp.iniます。

XAMPP を使用している場合は、php.ini をオンにする必要がありますC:\xampp\php

   php.ini:

;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
于 2013-06-22T01:43:23.090 に答える