【问题标题】:Sending email with an attachment in osCommerce在 osCommerce 中发送带有附件的电子邮件
【发布时间】:2014-06-15 21:05:37
【问题描述】:

我正在尝试为每个订单(条款和条件)发送 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...

感谢任何帮助

【问题讨论】:

    标签: php email attachment oscommerce


    【解决方案1】:

    前段时间,我试图让我的 osCommerce 商店以 html 格式发送电子邮件并使用附件,但我失败了,因为电子邮件类的实现非常糟糕。

    现在我正在使用Mustache for php + PHPMailer。设置和编写 wrap 函数花了我几天时间,但现在自定义小胡子模板和处理电子邮件非常容易。

    但请记住,您必须将数据数组用于 Mustache 引擎,而不是在循环中进行字符串连接。

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

    $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();
    

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      相关资源
      最近更新 更多