【问题标题】:Send a mail automatically in an thunderbird addon在雷鸟插件中自动发送邮件
【发布时间】:2014-02-13 08:16:08
【问题描述】:

我在开发一个 Thunderbird 插件,需要发送由插件而不是用户编写的邮件。

我尝试这样做,但不起作用:

var am = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);
var cf = Components.classes["@mozilla.org/messengercompose/composefields;1"].createInstance(Components.interfaces.nsIMsgCompFields);
cf.from = "somebody@somewhere.com";
cf.to = "somebodyelse@somewhere.com";
cf.subject = "test";
cf.body = "just a test\r\n";

var params = Components.classes["@mozilla.org/messengercompose/composeparams;1"].createInstance(Components.interfaces.nsIMsgComposeParams);
params.composeFields = cf;

var msgSend = Components.classes["@mozilla.org/messengercompose/send;1"].createInstance(Components.interfaces.nsIMsgSend);

var msgCompose = Components.classes["@mozilla.org/messengercompose/compose;1"].createInstance(Components.interfaces.nsIMsgCompose);
msgCompose.compFields = cf;
msgCompose.initialize(window,params); //[Exception... "Could not convert JavaScript argument arg 0 [nsIMsgCompose.initialize]"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: *****"  data: no]

msgCompose.SendMsg(msgSend.nsMsgDeliverNow, am.defaultAccount.defaultIdentity, am.defaultAccount.key, null, null);

有人知道我的错误在哪里或一个简单的方法吗?

谢谢

【问题讨论】:

    标签: email xul send thunderbird-addon


    【解决方案1】:

    从插件发送电子邮件是一项极其复杂的任务。幸运的是,库是存在的,即以 Thunderbird-stdlib 的形式存在。 sendMessage函数的实现见https://github.com/protz/thunderbird-stdlib/blob/master/send.js#L228,函数使用示例见https://github.com/protz/GMail-Conversation-View/blob/master/content/stub.compose-ui.js#L879

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2012-05-26
      • 2014-02-06
      • 2016-03-09
      • 2011-03-24
      • 2017-04-18
      • 1970-01-01
      相关资源
      最近更新 更多