我正在尝试通过Mailgun在Cakephp 2.6中发送带附件的电子邮件。它通常正常工作,除非我添加附件($附件)'。我的代码如下。
$attachments = SITE_URL . '/img/red-hyphen.png';
$data = array (
'unique_secret_key' => $unique_secret_key,
'WAYDSiteUrl' => $siteUrl
);
$Email = new CakeEmail ( 'mailgun' );
$Email->template ( 'forgotpassword', 'default' )
->emailFormat ( 'html' )
->viewVars ( $data )
->subject ( 'Forgot Password' )
->to ( $chek_exists_record ['Member'] ['email'] )
->attachments($attachments)
->send ();
我收到错误
错误:发生内部错误。 堆栈跟踪
APP\Controller\MembersController.php line 255 → CakeEmail->attachments(string)
'http://localhost/GYB_develop/gyb_source/img/red-hyphen.png'
[internal function] → MembersController->forgotpassword()
CORE\Cake\Controller\Controller.php line 490 → ReflectionMethod->invokeArgs(MembersController, array)
CORE\Cake\Routing\Dispatcher.php line 193 → Controller->invokeAction(CakeRequest)
CORE\Cake\Routing\Dispatcher.php line 167 → Dispatcher->_invoke(MembersController, CakeRequest)
APP\webroot\index.php line 118 → Dispatcher->dispatch(CakeRequest, CakeResponse)
答案 0 :(得分:0)
您应该尝试使用附件
发送带有附件的Cakephp
email.php文件
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'abc@gmail.com',
'password' => 'xxxxxxxx',
'transport' => 'Smtp'
);
在您的控制器中在顶部导入cakeemail函数
App::uses('CakeEmail', 'Network/Email');
之后你的控制器的功能/动作
$client_email='sharmavikram054@gmail.com'
$Email = new CakeEmail();
$Email->template('doperesult');
$Email->viewVars(array( 'unique_secret_key' => $unique_secret_key,'WAYDSiteUrl' => $siteUrl ));
$Email->emailFormat('html');
$Email->to($client_email);
$Email->from('admin@capeprofileconsultancy.com');
$Email->attachments(array(
'red-hyphen.png' => array(
'file' => WWW_ROOT.'img/red-hyphen.png',
'mimetype' => 'image/png',
'contentId' => 'my-unique-id'
)
));
$Email->subject('Dummy test');
if($Email->send('Send Mail')){
$this->Session->setFlash('Your Result is successfully send','default',array('class'=>'alert alert-success'));
return $this->redirect('/');
}
您可以访问cakephp电子邮件链接Cakephp email