Прикрепить содержимое базы данных HTML5 WebSQL к электронной почте с помощью javascript

Я создал локальную БД (WebSQL) в HTML5. Содержимое локального хранилища должно быть отправлено в виде вложения по электронной почте. Почтовый клиент будет открыт с помощью функции javascript mailto.

Требование состоит в том, что при открытии почтового клиента содержимое локального хранилища должно быть прикреплено в виде файла (в любом формате файла, таком как xml, csv или текст) в окне почтового клиента.

Насколько я понимаю, контент нужно будет сначала экспортировать в файл, а затем прикрепить к электронной почте. Можно ли это сделать с помощью File API HTML5?

Мой вопрос: возможно ли это сделать с помощью javascript?

РЕДАКТИРОВАТЬ: Моя проблема в том, что это должно быть сделано полностью на стороне клиента. Есть ли хотя бы способ экспортировать содержимое локальной базы данных в файл с помощью javascript? Затем этот файл можно вручную прикрепить к электронному письму.


person user32262    schedule 03.12.2012    source источник
comment
Обновил вопрос для большей ясности.   -  person user32262    schedule 04.12.2012
comment
Сохранение файла с помощью File API: eligrey.com/demos/FileSaver.js Или с помощью старого доброго URI данных: stackoverflow.com/questions/3286423/   -  person Yury Tarabanko    schedule 04.12.2012


Ответы (1)


Я предполагаю, что вы говорите о том, чтобы сделать что-то вроде этого (после извлечения информации из WebSQL):

document.location = "mailto:"+recipient+"?attach="+"attach.zip";

Согласно RFC 2368 вы не можете добавить вложение к сообщению с схема mailto: URL по соображениям безопасности:

Пользовательский агент, интерпретирующий URL-адрес mailto, ДОЛЖЕН не создавать сообщение, если какой-либо из заголовков считается опасным; он также может выбрать создание сообщения только с подмножеством заголовков, указанных в URL-адресе. Только заголовки «Тема», «Ключевые слова» и «Тело» считаются безопасными и полезными.

Вывод:

mailto: поддерживает только значения заголовков или текстовое/простое содержимое.

Альтернативы:

  • Если вы используете PHP, вы можете сделать это с помощью PHPMailer.

  • Если вы используете C#, вы можете использовать этот класс

  • Для любого другого языка на стороне сервера я на 99% уверен, что есть способ сделать это.

person Tom Sarduy    schedule 04.12.2012
comment
Смотрите мою правку. Я должен сделать это чисто на стороне клиента. Если локальную базу данных можно хотя бы экспортировать в файл, пользователь может вручную прикрепить файл к электронному письму. Любая идея о том, как экспортировать локальную базу данных в файл? - person user32262; 04.12.2012