我构建了这样的电子邮件标题:
$txt_message .= $this->txt_message;
$html_message .= $this->html_message;
$mh = Core::make('helper/mail');
$mh->to($this->email_to, $this->site_name);
$mh->from($this->email, $this->name);
$mh->replyto($this->email, $this->name);
$mh->setSubject($this->subject);
$mh->setBody($txt_message);
$mh->setBodyHtml($html_message);
@$mh->sendMail();
有些帖子说可以添加附件
$mh->addAttachment($file);
但$ file必须是文件对象。如何将上传的文件设为文件对象?
我还发现了这篇文章:http://www.adrikodde.nl/blog/2012/mail-attachments-concrete5/
但是我收到所有Zend的错误。 Zend Mail仍然可以在C5.7中使用吗?
我在哪里放置文件附件的标头?我在哪里可以找到更多关于真正发送消息的内容(它仍然是Zend Mail吗?)以及可用的方法?
谢谢。
[解决]
感谢Nicolai,这是一个附加文件的工作示例:
$file = $_FILES['image']['tmp_name'];
$filename = $_FILES['image']['name'];
$importer = new \Concrete\Core\File\Importer();
$file_version = $importer->import($file, $filename);
$attachment = $file_version->getFile();
$mh->addAttachment($attachment);
//Delete the file if not wanted on server
$attachment->delete();
PS。在尝试发送之前,不要忘记检查真正选择/存在/上传的文件!
if (!empty($this->image)) {
$importer = new \Concrete\Core\File\Importer();
$image_version = $importer->import($this->image, $file_name);
if ($image_version instanceof \Concrete\Core\File\Version) {
$attachment = $image_version->getFile();
$mh->addAttachment($attachment);
}
}
@$mh->sendMail();
答案 0 :(得分:1)
要将文件添加到文件系统,您应该看看这个
http://concrete5.org/api/class-Concrete.Core.File.Importer.html。
在返回的对象(成功时为FileVersion
)上,您应该可以调用getFile( )
来获取实际的Concrete5 File
对象