如何在CakePHP 2.0中发送带有附件的电子邮件?
我正在尝试使用CakePHP 2.0发送一封带有附件的电子邮件 该文件由用户通过表单提交 到目前为止,我已经:如何在CakePHP 2.0中发送带有附件的电子邮件?,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我正在尝试使用CakePHP 2.0发送一封带有附件的电子邮件 该文件由用户通过表单提交 到目前为止,我已经: App::uses('CakeEmail', 'Network/Email'); $email = new CakeEmail(); $email->attachments = array($this->data['Opportunity']['resume_file']['tmp_name']); $email->viewVars(array('name' =>
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail();
$email->attachments = array($this->data['Opportunity']['resume_file']['tmp_name']);
$email->viewVars(array('name' => $this->data['Opportunity']['name']));
$email->template('application')
->emailFormat('html')
->to(TEST_CONTACT)
->from(EMAIL_CONTACT)
->subject('New application received')
->send();
电子邮件发送,看起来不错,但没有附件
我做错了什么?出于某种原因,除非您声明 首先是文件路径 我也有同样的问题,我没有找到很多答案 这个问题。我花了一段时间来解决问题,澄清, 我让它工作了
$this->Email->filePaths = array('/home/username/');
$this->Email->attachments =array('article_button.png');
$this->Email->to = 'em...@email.co.uk';
$this->Email->subject = 'Something';
$this->Email->replyTo = $client['Client']['email'];
$this->Email->from = $client['Client']['email'];
$this->Email->sendAs = 'html';
if($this->Email->send('Testing', null, null)){
die('Email Sent!');
}else{
die('Failed to send email');
}
将脚本放在AppController.php的下面
function sendMailWithAttachment($template = null, $to_email = null, $from_email = null, $subject = null, $contents = array()) {
$from_email = 'noreply@xyz.com';
$email = new CakeEmail();
$result = $email->template($template, 'default')
->emailFormat('html')
->to($to_email)
->from($from_email)
->subject($subject)
->attachments('your-server-path/filename.extenstion')
->viewVars($contents);
if ($email->send('default')) {
return true;
}
return false;
}
之后,只需在任何控制器中调用sendMailWithAttachment()方法,如
$this->sendMailWithAttachment('tmpl', 'test@abc.com','noreply@xyz.com', 'Subject', $tmpl_DATA_IN_ARRAY);
我从未遇到过附件路径的问题。很奇怪,谢谢你,但我没能让它工作。当我打印出临时文件的路径时,我得到了/home/content/57/4087557/tmp/phpblahblah-所以我应该有$email->filepath=array('/home/content/57/4087557/tmp/'),对吗?