在osCommerce中发送带附件的电子邮件

时间:2014-06-15 21:05:38

标签: php email attachment oscommerce

我尝试为每个订单(条款和条件)发送2个附件,但它似乎无法正常工作,因为我已经收到了0kb文件。

权限正确且文件确实存在。

这是功能:

function tep_mail_attach($to_name, $to_email_address, $email_subject, $email_text, $from_name, $from_email_address, $file, $filetype, $filename, $file2, $filetype2, $filename2) {

if (SEND_EMAILS != 'true') return false;

$message = new email(array('X-Mailer: osCommerce'));

$text = strip_tags($email_text);
if (email_USE_HTML == 'true') {
     $message->add_html($text);
} else {
      $message->add_text($text);
}

if(is_array($file)){
for($i=0;$i<sizeof($file);$i++){

$attachment = fread(fopen($file[$i], "r"), filesize($file[$i]));


$message->add_attachment($attachment, $filename[$i].'.'.$filetype[$i], $filetype[$i]);
}}
else{
$attachment = fread(fopen($file, "r"), filesize($file));

}
if(is_array($file2)){
for($i=0;$i<sizeof($file2);$i++){

$attachment2 = fread(fopen($file2[$i], "r"), filesize($file2[$i]));


$message->add_attachment($attachment2, $filename2[$i].'.'.$filetype2[$i], $filetype2[$i]);
}}
else{
$attachment2 = fread(fopen($file2, "r"), filesize($file2));
}

$message->add_attachment($attachment, $filename.'.'.$filetype, $filetype);
$message->add_attachment($attachment2, $filename2.'.'.$filetype2, $filetype2);


 $message->build_message();
 $message->send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject);

}

调用该函数:

tep_mail_attach($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, "AllgemeineGeschaeftsbedienungen.pdf", "pdf", "AllgemeineGeschaeftsbedienungen", "Widerrufsrecht.pdf", "pdf", "Widerrufsrecht");

过去几天我一直在咬这个钉子,我只是不明白为什么文件有0kb ......

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

前段时间我曾尝试让我的osCommerce商店以HTML格式发送电子邮件并使用附件,但我失败了,很难实现电子邮件课程。

现在我使用Mustache for php + PHPMailer。设置和编写包装完成花了我几天,但现在很容易定制胡子模板和处理电子邮件。

但请记住,在循环中使用数据数组而不是字符串连接,而不是字符串连接。

现在发送电子邮件看起来像这样(是的,我看到一些问题,但他们的解决方案可以等待):

$mailOrederNewHtml = $mustache->render('mailOrderNew', $order);

$phpMailer->isSendmail();
$phpMailer->setFrom(STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER);
$phpMailer->addAddress($order->customer['email_address'], $order->customer['firstname'] . ' ' . $order->customer['lastname']);
$phpMailer->Subject = STORE_OWNER . ' - order notofication ' . $insert_id;
$phpMailer->msgHTML($mailOrederNewHtml);
$phpMailer->WordWrap = 80;
$phpMailer->CharSet = 'utf-8';

$sendRes = $phpMailer->send();