4

PHP を使用してオンザフライで CSV を作成しています。次に、この CSV ファイルを Swift Mailer Message に添付する必要があります。作成したファイルで file_get_content を使用するだけでなく、作成したファイルで chunk_split(base64_encode(file_get_contents()) を使用するだけでなく、ディスクに書き込む前にファイルを添付しようとしました。 file_get_content を使用すると、CSV ファイルの各行に文字列が 1 つだけ表示されます。何が間違っているか知っている人はいますか?

if(!file_exists(_PS_ORDERS_DIR_.$orderDate.'/'.$file_name.'.csv'))
 {
  if($file = fopen (_PS_ORDERS_DIR_.$orderDate.'/'.$file_name.'.csv', 'x+'))
   {
   foreach ($list as $fields)
    {
     fputcsv($file, $fields);
    }



    $attachment['mime'] = 'application/vnd.ms-excel';
    $attachment['content'] = file_get_contents($file);
    $attachment['name'] = $order.'order';
  EDIT            
 Mail::Send(1, 'order_conf', 'Order CSV Attachment', $success, 'test@email.com', Address, NULL, NULL, $attachment); // attach and send
      }
      }
4

2 に答える 2

7

Swift メーラーにファイルを添付する:

$swift =& new Swift(new Swift_Connection_SMTP(MAIL_SMTP_URL, MAIL_SMTP_PORT));
$message =& new Swift_Message($subject);
$recpients =& new Swift_RecipientList();
$sender =& new Swift_Address('info@example.com', 'example.com');
$recpients->addTo('info@example.com', 'www.example.com');

$message->attach(new Swift_Message_Part('this is my body'));
$message->attach(new Swift_Message_Attachment($binarycontents, $fileTitle, $mimeType));
$swift->send($message, $recpients, $sender);

あなたの場合、添付は次のようになります。

$message->attach(new Swift_Message_Attachment(file_get_contents($file), $order.'order.csv', 'application/vnd.ms-excel'));

もちろん、例えば:)

于 2011-01-12T17:12:39.073 に答える