0

コンソール/cron 経由で CakePHP 1.3 電子メール コンポーネントを使用して電子メールを送信しようとしています。メールは送受信されますが、添付ファイルはありません。

フォーム経由で行うと、電子メールは添付ファイル付きで正常に送信されます。
$this->Email->filePathsを追加しようとしましたが
( CakePHP 2.0 で添付ファイル付きのメールを送信するにはどうすればよいですか?から)
、添付ファイルがまだ送信されていません。

私のコードは以下の通りです:

$email =& new EmailComponent();
$email->reset();
$email->initialize($controller);        
$email->delivery = $emailConfigurations['delivery'];        
$email->from = $emailConfigurations['from'];
$email->replyTo = $emailConfigurations['replyTo'];
$email->return = $emailConfigurations['return'];
$email->template = 'default';
$email->sendAs = $emailConfigurations['sendAs'];

if (strcasecmp($email->delivery, 'smtp') == 0) {
    $email->smtpOptions = array(
        'timeout' => $emailConfigurations['smtpTimeout'],
        'port' => $emailConfigurations['smtpPort'],
        'host' => $emailConfigurations['smtpHost'],
        'username' => $emailConfigurations['smtpUsername'],
        'password' => $emailConfigurations['smtpPassword']
    );
}

$email->to = $newEmail['mail_to'];
$email->subject = $newEmail['message_title'];

if ($newEmail['attachment_name'] && $newEmail['attachment_tmp']) {
    $attachedFilePath = WWW_ROOT . 'files' . DS .  'email_attachments' . DS ;
    $attachedFile = $newEmail['attachment_tmp'];

    $this->Email->filePaths  = array($attachedFilePath); 
    $this->Email->attachments = array($attachedFile);
}

if($email->send($newEmail['message'])){
    $this->out(date('Y-m-d H:i:s')." Email sent : ".$newEmail['id']);
} else {
    $this->out(date('Y-m-d H:i:s')." Email not sent : ".$newEmail['id']);
}

したがって、基本的に私の質問は、コンソール/cron経由でシェルスクリプトを実行するときに、添付ファイル付きで送信される電子メールを取得するにはどうすればよいかということです.

前もって感謝します。

4

1 に答える 1

0

DSCake は末尾をトリムしないため、パス リストから末尾を削除します。

$attachedFilePath = WWW_ROOT . 'files' . DS .  'email_attachments';
于 2012-06-11T14:07:54.250 に答える