Мне нужно отправить CSV-файл для каждого пользователя с их детали сделки в то время как запустить хрон в SymfonyСформировать и отправить CSV файл в приложении с Symfony
Мой код, как показано ниже, чтобы генерировать данные в формате CSV и отправить по электронной почте
массива пользователя:
$array = array('name','ticket','history','date','flag','created by','transition');
$f = fopen('php://temp', 'w');
$line = $array;
fputcsv($f, $line, ',');
rewind($f);
$stream_get_contents = stream_get_contents($f);
$sentmail = $this->sendEmail($stream_get_contents);
if($sentmail){
return true;
}else{
return false;
}
fclose($f);
unset($f);
public function sendEmail($csvData){
UserId='1';
$em = $this->getContainer()->get('doctrine')->getManager();
$getstaffuser = $em->getRepository('AdminBundle:User')->find($UserId);
if ($getstaffuser) {
if ($getstaffuser->getEmail()) {
$objEmailTemplate = $em->getRepository('BviTemplateBundle:Emailtemplate')->findOneBy(array('emailkey' => 'KEYFIND', 'status' => 'Active'));
if (!$objEmailTemplate) {
$output->writeln("\n####### Email template not present #######\n");
$logger->info("\n####### Email template not present #######\n");
return "NoEmailTemplate";
}
$attachment = chunk_split($csvData);
$multipartSep = '-----' . md5(time()) . '-----';
$bodydata = $objEmailTemplate->getBody();
$body = "--$multipartSep\r\n"
. "Content-Type: text/plain; charset=ISO-8859-1; format=flowed\r\n"
. "Content-Transfer-Encoding: 7bit\r\n"
. "\r\n"
. "$bodydata\r\n"
. "--$multipartSep\r\n"
. "Content-Type: text/csv\r\n"
. "Content-Transfer-Encoding: base64\r\n"
. "Content-Disposition: attachment; filename=\"Website-Report-" . date("F-j-Y") . ".csv\"\r\n"
. "\r\n"
. "$attachment\r\n"
. "--$multipartSep--";
$to = $getstaffuser->getEmail();
$subject = $objEmailTemplate->getSubject();
$mail = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom($this->getContainer()->getParameter('fos_user.registration.confirmation.from_email'))
->setTo($to);
$mail->setBody($body)
->setContentType('multipart/mixed');
$issent = $this->getContainer()->get('mailer')->send($mail);
if ($issent) {
return 'EmailSent';
} else {
return 'EmailNotSent';
}
} else {
return "NoEmailAddress";
}
} else {
return "NoUser";
}
}
Но это не работает, я получаю по электронной почте, как только файл с Noname в качестве имени файла в приложении, которое не является CSV-файла, а не получить содержимое тела.
Пожалуйста, любое тело может помочь мне this.I оценит лучший ответ
Спасибо за помощь, но мне нужно отправить, что сгенерированные данные CSV в качестве прикрепленного файла в формате CSV, который сгенерировал данные хранятся в $ csvData –
привет @HetalGohel попытаться проверить раздел редактирования в ответ, если он удовлетворяет вам нужно. Позвольте мне знать – Matteo
спасибо, да, он работает для меня, как показано ниже, -> attach (\ Swift_Attachment :: newInstance ($ csvData) -> setFilename ('filename.csv') -> setContentType ('application/csv')); –