Примерно так, однако фалы читать могут только современные браузеры
var xmlhttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open('POST', 'https://mandrillapp.com/api/1.0/messages/send.json');
xmlhttp.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) alert('Спасибо за заявку, в скором времени вам перезвоним!')
else if(xmlhttp.status == 500) alert('Check apikey')
else alert('Request error');
}
}
window.addEventListener('DOMContentLoaded', function(){
var form = document.querySelector('#sendForm');
var attachments = [];
var submit = form.querySelector('input[type="submit"]');
var files = form.querySelector('#files');
files.addEventListener('change', function() {
var files = this.files, i = files.length;
if(!i) return attachments = [];
submit.disbled = true; //не даём отправлять форму пока не подгрузит аттачи
var reader = new FileReader();
var newAttachments = [];
reader.onload = function () {
var index = reader.result.indexOf(';base64,');
newAttachments.push({
type: reader.result.slice(5, index),
name: files[i].name,
content: reader.result.slice(index + 8)
});
if(i--) reader.readAsDataURL(files[i]);
else {
submit.disbled = false;
attachments = newAttachments;
};
}
reader.readAsDataURL(files[--i]);
}, false);
form.addEventListener('submit', function (e) {
e.preventDefault();
sendMail(this.elements.sub.value, this.elements.text.value, attachments);
}, false);
}, false);
function sendMail(sub, text, attachments){
xmlhttp.send(JSON.stringify({'key': 'puturApikey',
'message': {
'from_email': 'test@mail.ru',
'to': [{'email': 'totest@mail.ru', 'type': 'to'}],
'autotext': 'true',
'subject': sub,
'html': text,
'attachments': attachments
}}));
}