在CakePHP中将多个文件附加到电子邮件中

时间:2016-01-13 07:30:45

标签: cakephp email-attachments cakephp-2.3

我想在邮件中附加5个动态文本文件,但不能正常工作。

我在电子邮件中发送单个附件工作完美我的代码是:

  $Email->attachments('path/to/example.txt');

但我在电子邮件中发送多个附件无法正常工作。

我的代码是:

$Email->attachments('path/to/example.txt','path/to/example1.txt','path/to/example3.txt','abs/path/to/example4.txt','path/to/example5.txt');

3 个答案:

答案 0 :(得分:0)

尝试

$Email->attachments(
    array(
       'path/to/example.txt',
       'path/to/example1.txt',
       'path/to/example3.txt',
       'abs/path/to/example4.txt',
       'path/to/example5.txt'
   )
);

答案 1 :(得分:0)

documentation中所述,attachments方法将数组作为第一个参数,因此您的代码应如下所示: -

$Email->attachments(array(
    'path/to/example.txt',
    'path/to/example1.txt',
    'path/to/example3.txt',
    'abs/path/to/example4.txt',
    'path/to/example5.txt'
));

API documentation中也清楚地说明了这一点(总是值得一试)。

如果查看attachments()的实际代码,您会看到如果只为第一个参数传递一个字符串,则会将其转换为array。您的代码无法正常工作,因为该方法不会采用多个参数。

答案 2 :(得分:0)

尝试使用此代码进行多次附件:

$Email->attachments(array(
            'example.txt' => array(
                'file' => 'path/to/example.txt',
                'mimetype' => 'text/plain'
            ),
example1.txt' => array(
                'file' => 'path/to/example1.txt',
                'mimetype' => 'text/plain'
            ),
example3.txt' => array(
                'file' => 'path/to/example3.txt',
                'mimetype' => 'text/plain'
            ),
example4.txt' => array(
                'file' => 'path/to/example4.txt',
                'mimetype' => 'text/plain'
            ),
example5.txt' => array(
                'file' => 'path/to/example5.txt',
                'mimetype' => 'text/plain'
            )

        ));