Читатель сообщений на стороне сервера

Это должно быть возможно... Я нашел что-то похожее для использования со звуковыми дорожками: Feed File Читатель с сервера, а также этот: Чтение файлов на стороне сервера но я не могу собрать все вместе, чтобы заставить его работать!

Кроме того, мои голоса не учитываются, потому что у меня недостаточно очков репутации, но кому-то нужно проголосовать за Филипа за то, что более года назад он дал ответ на свой вопрос: Feed File Reader from Server! Хотел бы я понять, как изменить его для чтения сообщений.

Нижний сценарий (и несколько вспомогательных сценариев) читает файл msg, не открывая Outlook... он работает на стороне клиента с помощью кнопки «Обзор», которая бесполезна, поскольку файлы msg находятся на сервере. У меня работает xmlHTTPRequest, но я получаю страницу 404, когда пытаюсь отобразить файл .msg. Файл есть, потому что я могу изменить расширение на .txt, и он будет отображать тарабарщину... (может быть, я там, и его просто нужно куда-то подключить к скрипту чтения?) Кроме того, я подумал, если я использовал overrideMimType, это помогло бы, но он отображает [object blob].

xhr.overrideMimeType('text\/plain; charset=x-user-defined');

Как подобрать файл и приписать ему класс src-file? (Думаю, именно так это интерпретируется приведенным ниже сценарием.)

    $(function () {
    if (isSupportedFileAPI()) {
        $('.src-file').change(function () {
            var selectedFile = this.files[0];
            if (!selectedFile) {
                $('.msg-info, .incorrect-type').hide();
                return;
            }
            if (selectedFile.name.indexOf('.msg') == -1) {
                $('.msg-info').hide();
                $('.incorrect-type').show();
                return;
            }
            $('.msg-example .msg-file-name').html(selectedFile.name);
            $('.incorrect-type').hide();

            // read file...
            var fileReader = new FileReader();
            fileReader.onload = function (evt) {

                var buffer = evt.target.result;
                var msgReader = new MSGReader(buffer);
                var fileData = msgReader.getFileData();

                if (!fileData.error) {
                    $('.msg-example .msg-from').html(formatEmail({name: fileData.senderName, email: fileData.senderEmail}));
                    $('.msg-example .msg-to').html(jQuery.map(fileData.recipients, function (recipient, i) {
                        return formatEmail(recipient);
                    }).join('<br/>'));
                    $('.msg-example .msg-subject').html(fileData.subject);
                    $('.msg-example .msg-body').html(fileData.body ? fileData.body.substring(0, Math.min(500, fileData.body.length)) + (fileData.body.length > 500 ? '...' : '') : '');
                    $('.msg-example .msg-attachment').html(jQuery.map(fileData.attachments, function (attachment, i) {
                        return attachment.fileName + ' [' + attachment.contentLength + 'bytes]' + (attachment.pidContentId ? '; ID = ' + attachment.pidContentId : '');
                    }).join('<br/>'));
                    $('.msg-info').show();
                    // Use msgReader.getAttachment to access attachment content ...
                    // msgReader.getAttachment(0) or msgReader.getAttachment(fileData.attachments[0])
                } else {
                    $('.msg-info').hide();
                    $('.incorrect-type').show();
                }
            };
            fileReader.readAsArrayBuffer(selectedFile);
        });
    } else {
        $('.msg-example').hide();
        $('.file-api-not-available').show();
    }
});

Заранее спасибо за любую помощь в этом...


person Randy Clark    schedule 20.01.2017    source источник
comment
HTTP-запросы могут быть сделаны с использованием относительных путей. Им не нужно быть видимыми для всего мира.   -  person isherwood    schedule 20.01.2017
comment
Спасибо, я пытаюсь это... мне кажется, что кнопка «Обзор» передает значение файла через .src-файл. Как я могу передать значение HTTP-запроса в .src-файл, чтобы я мог прочитать файл с сервер вместо локальной машины?   -  person Randy Clark    schedule 09.02.2017
comment
Я полностью исключаю кнопку «Обзор». Я не пытаюсь вставить значение в this.files[0]. Я предлагаю выбрать файл с помощью httpGetAsync из щелчка элемента строки и назначить его для selectedFile в сценарии чтения электронной почты.   -  person Randy Clark    schedule 07.04.2017
comment
Концепция аналогична следующей публикации stackoverflow.com/questions/32427394/, на который ответила цель. Я пытаюсь передать значение пути на сервер со ссылкой вместо использования кнопки обзора, чтобы найти его на локальном компьютере. Файлы находятся на сервере, что имеет смысл использовать HTTP-запрос, чтобы передать его на клиентский компьютер и отобразить с помощью сценария чтения электронной почты javascript. Сценарий чтения работает нормально... если бы я мог использовать его для чтения электронной почты с сервера, а не с клиентской машины.   -  person Randy Clark    schedule 20.06.2017