Создать объект Outlook с Firefox - PullRequest
       28

Создать объект Outlook с Firefox

0 голосов
/ 04 сентября 2010

с ActiveX Я могу создать экземпляр Outlook и запустить новую HTML электронную почту.

Вот пример кода:

var outlookApp =новый ActiveXObject («Outlook.Application»);

var nameSpace = outlookApp.getNameSpace ("MAPI");

mailFolder = nameSpace.getDefaultFolder (6);

mailItem = mailFolder.Items.add ('IPM.Note.FormA ');

mailItem.Subject = "предметный тест";

mailItem.To = "an@email.here";

mailItem.HTMLBody = " полужирный ";

mailItem.display (0);

Есть ли эквивалент для Firefox.Например с XPCom?У кого-нибудь есть образец, пожалуйста?

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 сентября 2010
//this class emulates the one u used to use
function mailer() {
  this.display = function() {
    var url = 'mailto:'
                       + this.To
                       + '?subject=' + encodeURIComponent(this.Subject)
                       + '&body=' + encodeURIComponent(this.HTMLBody);
    window.location = url;
  }
}

//we instantiate
mailItem = new mailer();


//and then your old code: 
mailItem.Subject="a subject test";
mailItem.To = "an@email.here";
mailItem.HTMLBody = "<b>bold</b>";
mailItem.display (0);

То, что делается здесь, использует <a> s mailto: аналогичный подход:

<a href="mailto:an@email.here?subject=a+subject+test&body=%3Cb%3Ebold%3C/b%3E">email me!</a>
0 голосов
/ 28 марта 2015

Вот альтернативное решение, очень похожее на принятый ответ, если вы используете jQuery и хотели бы расширить его функциональные возможности для достижения этой цели. Так же хорошо, как и другой ответ, но думал, что я выброшу альтернативное решение, которое я использую. До сих пор у меня не было проблем с кросс-браузерным использованием. Я не вернулся и не попробовал более старые версии IE, просто использовал более свежую версию каждого браузера, чтобы проверить это.

Расширение jQuery для включения пользовательской функции почтовой программы

$(function () {
    $.fn.myMailer = function () {
        this.display = function() {
            var url = 'mailto:' + this.To + 
                      '?subject=' + encodeURIComponent(this.Subject) + 
                      '&body=' + encodeURIComponent(this.HTMLBody);
            window.location = url;
            return true;
        }
    }
});

Пример использования:

var myMailItem = new $.fn.myMailer();
myMailItem.To = 'yourEmail@domain.com';
myMailItem.Subject = 'Your Subject';
myMailItem.HTMLBody = 'Whatever you want your E-Mail to say';
myMailItem.display(0);

Кроме того, если вы хотите добавить CC или BCC получателей, следуйте приведенной выше структуре, чтобы добавить их также в строку запроса mailto .

Я также пытался получить вложение в E-Mail Outlook на клиентском компьютере

$(function () {
    $.fn.myMailer = function () {
        this.display = function() {
            var url = 'mailto:' + this.To + '?content-type=' +
                       encodeURIComponent('multipart/form-data') + 
                      '&subject=' + encodeURIComponent(this.Subject) + 
                      '&body=' + encodeURIComponent(this.HTMLBody) +  
                      '&attachment=' + encodeURIComponent(this.Attachment);
            window.location = url;
            return true;
        }
    }
});

Я потерпел неудачу с этой попыткой. Я не уверен, что это возможно исключительно из-за использования кода на стороне клиента. Я могу ошибаться. Это также может создать угрозу безопасности, я думаю, если это возможно.

Я бы сказал, что лучшим вариантом здесь будет использование клиентских сценариев для вызова некоторого кода на стороне сервера, однако вы предпочитаете пойти на это и попросить сервер отправить электронное письмо, если это применимо.

Мне, однако, нужно было добавить вложение в E-Mail Outlook, которое появилось бы на клиентском компьютере, поэтому я все еще прорабатываю окончательные детали того, как обрабатывать добавление вложений в моей ситуации. Использование .NET Я думаю, что должен быть какой-то способ справиться с этим, у меня просто еще не было времени, чтобы реализовать обработчик на стороне сервера, чтобы выполнить это. Если кто-то пытается сделать то же самое, используя .NET , здесь - хорошая ссылка для начала работы со Outlook 2013 MailItem свойствами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...