Я генерирую использование PDF FPDF, и я должен послать его по электронной почте клиенту.
Так как я могу генерировать PDF от DB, я не хочу сохранять весь PDF локально, поскольку он загромоздит мой сервер.
Я хочу быть в состоянии послать электронное письмо с присоединенным PDF. Я должен создать временный файл, затем удалить его каждый раз, когда или есть ли другой способ сделать это?
Вы действительно хотите отсортировать ArrayList. Для этого класс Contacts должен реализовать метод Comparator.
Посмотрите следующую страницу для примера: http://www.java-examples.com/sort-java-arraylist-descending-order-using-comparator-example
-121--4223022-Я бы начал с вопроса, является ли использование новой технологии или языка хорошей идеей. Иногда может показаться очень важным использовать новейшие технологии в проекте, на который вы возлагаете большие надежды. Часто, когда меня соблазняли вот так, я находил, что последняя блестящая вещь столь же ущербна, как и технология, которую я уже знал.
Во многих случаях, если вы действительно заботитесь о проекте, лучше придерживаться того, что вы уже знаете.
-121--981175- <?php
//define the receiver of the email
$to = 'youraddress@example.com';
//define the subject of the email
$subject = 'Test email with attachment';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
//read the atachment file contents into a string,
//encode it with MIME base64,
//and split it into smaller chunks
$attachment = chunk_split(base64_encode(file_get_contents('attachment.zip')));
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"
--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Hello World!!!
This is simple text email message.
--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>
--PHP-alt-<?php echo $random_hash; ?>--
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/zip; name="attachment.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--
<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
вы заметите эту строку
$ attachment = chunk_split (base64_encode (file_get_contents ('attachment.zip')));
и вы изменяете в соответствии с файлом памяти.
Это определенно возможно. Вы можете взять любой класс PHP Mailer, который может обрабатывать вложения, и переписать функцию Addattatchment
, где он читает данные из файла, чтобы вместо этого принять вашу переменную.
Zend_mail , похоже, умеет переваривать строки, как напрямую вложения, без каких-либо переписывающих.