0

我正在尝试通过 Mailgun 在 Cakephp 2.6 中发送带有附件的电子邮件。除非我添加“附件($attachments)”,否则它通常工作正常。我的代码如下。

$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)
4

1 回答 1

0

你应该试试这个 Cakephp 发送带有附件的电子邮件

电子邮件.php 文件

public $gmail = array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'username' => 'abc@gmail.com',
    'password' => 'xxxxxxxx',
    'transport' => 'Smtp'
    );

在你的 Controller 顶部导入 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 电子邮件

于 2015-05-20T06:04:17.170 回答