2012-10-11 77 views
0

我與CakePHP的工作word文檔,我需要用附件發送電子郵件這裏是我的代碼CakePHP中附上電子郵件

function sendAsEmail($data) { 
    App::import('Component', 'Email'); 
    $user = $this->Sender->find('first', array(
     'conditions' => array('Sender.id' => $data['Message']['sender_id']), 
    )); 
    $Email = new EmailComponent(); 
    if ($this->useDbConfig == 'test') { 
     $Email->delivery = 'debug'; 
    } 

    $Email->sendAs = 'html'; 
    $Email->from = '[email protected]'; 
    $Email->return = Configure::read('App.systemAdminEmail'); 
    $Email->bcc = array($data['Message']['recipient_text']); 
    $Email->attachments = $data['Message']['attachments']; 
    $Email->subject = $data['Message']['subject']; 
    $content = $data['Message']['message']; 
    $replyToAddress = isset($data['Message']['reply_to_address']) ? 
     (bool)$data['Message']['reply_to_address'] : false; 
    if (!$replyToAddress) { 
     $content .= "\n\n".__("Please do not reply to this email", true); 
    } elseif (!empty($data['Message']['reply_to'])) { 
     $Email->replyTo = $data['Message']['reply_to']; 
    } 
    if (Configure::read('App.systemAdminEmail')) { 
     $Email->additionalParams = '-f'.Configure::read('App.systemAdminEmail'); 
    } 

    $Email->send($content); 
    return true; 
} 

我有$數據[「消息」] [「附件」我的附件]仍然我不能看到電子郵件附件

任何幫助嗎?

+0

您使用的是什麼版本的CakePHP? – Khior

回答

0

$Email->attachments需要包含要附加文件路徑的數組。請確保您擁有$data['Message']['attachments']路徑數組,而不僅僅是文件名...

+0

我這樣做 $ Email> filePaths = array($ html> url('/ files/event_documents /',true)); //文件路徑 $ Email-> attachments = $ data ['Message'] ['attachments']; //文件名,但仍然沒有附加到電子郵件文件 – OBM412

+0

'debug($ data ['Message'] ['attachments'])'應該輸出如下數組:array('/ var/www/myapp/tmp /filename1.pdf','/var/www/myapp/tmp/filename2.pdf') - 它必須是路徑數組... –

+0

但我把我的文件放在webroot/files/filename.docx – OBM412