2013-06-11 1 views
2

У меня есть пользовательский интерфейс для отправки сообщения. Пользователь вводит тему, тело сообщения, электронные письма для отправки, прикрепляет некоторые файлы. После Представлять мне нужно отправить сообщение, как MIME сообщения, например:JavaScript: создать MIME-сообщение

From: John Doe <[email protected]> 
MIME-Version: 1.0 
Content-Type: multipart/mixed; 
     boundary="XXXXboundary text" 

This is a multipart message in MIME format. 

--XXXXboundary text 
Content-Type: text/plain 

this is the body text 

--XXXXboundary text 
Content-Type: text/plain; 
Content-Disposition: attachment; 
     filename="test.txt" 

this is the attachment text 

--XXXXboundary text-- 

Как я могу собрать информацию, введенную пользователем как MIME сообщения? Я искал создание сообщения MIME на стороне клиента с помощью JavaScript, но не успел. Если вложения существуют, мне нужно преобразовать их в base64 string, а затем отправить сообщение MIME. Благодарю.

+1

Даже если вы создаете сообщение mime на стороне клиента, как вы собираетесь отправлять его с помощью javascript? – claustrofob

+0

@ claustrofob Сервер ожидает сообщения MIME, клиент веб-клиента и мобильного (iOS, ..) отправляет сообщение MIME. Итак, как веб-клиент, я должен отправить сообщение MIME. Надеюсь, я могу отправить его в виде строки (text/plain) ajax. – Ikrom

+0

На самом деле можно комбинировать сообщение mime с javascript. Вы можете найти реализацию функции кодирования base64, вы можете прочитать содержимое файла с помощью File API. Но он будет работать только в современных браузерах (и IE от v10). И это определенно огромные накладные расходы для клиента. Особенно операции с вложениями. И вы на самом деле пытаетесь создать сообщение mime электронной почты. Разве он не предназначен для почтового сервера? Вы не можете отправлять электронные письма прямо из браузера. – claustrofob

ответ

5

Я создал плагин javascript для создания сообщения MIME в javascript. https://github.com/ikr0m/mime-js. Создайте объект mail с необходимыми свойствами и вызовите функцию createMimeMessage. Он возвращает готовое сообщение MIME как строку javascript.

var mail = { 
    "to": "[email protected], [email protected]", 
    "subject": "Today is rainy", 
    "fromName": "John Smith", 
    "from": "[email protected]", 
    "body": "Sample body text", 
    "cids": [], 
    "attaches" : [] 
} 
var mimeMessage = createMimeMessage(mail); 
console.log(mimeMessage);  

Надеюсь, это поможет.

0

Я думаю, что вы должны посмотреть в мир модулей Node.js ... вы не сможете отправить свое MIME-сообщение от клиента браузера, так как нет поддержки SMTP. Но вы можете ОТПРАВИТЬ предварительно отформатированное сообщение на ваш веб-сервер через XHR, а затем отправить веб-сервер на самом деле.

Это выглядит, как он может делать то, что вам нужно:
https://www.npmjs.org/package/mailcomposer

т.е. вы можете подготовить сообщение MIME в виде строки

этот инструмент может помочь в плане использования модулей Node.js в браузере :
http://browserify.org/

+0

выглядит близко к тому, что я ищу. Вы проверите это. –

 Смежные вопросы

  • Нет связанных вопросов^_^