ユーザーの介入なしに、Gmailアカウントから既知の構造のメールを送受信しようとしています。
C ++またはPythonを使用して、複雑にすることなくFirefox拡張機能からIMAPおよびSMTP接続を確立するエレガントな方法はありますか?
nsISocketTransportService.createTransport()を使用して、次のような接続を開く必要があります。
var Cc = Components.classes;
var Ci = Components.interfaces;
var socket = Cc["@mozilla.org/network/socket-transport-service;1"]
.getService(Ci.nsISocketTransportService)
.createTransport(["ssl"], 1, "pop.gmail.com", 995, null);
var input = socket.openInputStream(Ci.nsITransport.OPEN_UNBUFFERED, 0, 0);
var scriptableInput = Cc["@mozilla.org/scriptableinputstream;1"]
.createInstance(Ci.nsIScriptableInputStream);
scriptableInput.init(input);
var output = socket.openOutputStream(Ci.nsITransport.OPEN_UNBUFFERED, 0, 0);
これにより、入力ストリームと出力ストリームが取得されます。を介してデータを受信し、を介しnsIScriptableInputStream.read()
て送信できますnsIOutputStream.write()
。ただし、IMAP / SMTPロジックを自分で実装する必要があります(Thunderbirdの現在の実装はC ++で記述されており、新しいJavaScriptベースの実装はまだ準備ができていないため使用できません)。
https://bugzilla.mozilla.org/show_bug.cgi?id=733573は、Webアプリケーション用のTCPAPIの実装に関するものです。これは進行中の作業であり、Firefox17でのみ利用できる可能性があります。ただし、パッチ(https://bugzilla.mozilla.org/attachment.cgi?id=643432&action=diff#a/b2g/components/TCPSocket.js_sec1)を読むと、TCPSocketオブジェクトは作成に必要なほとんどすべてを公開します。任意のサーバーへのSSL接続なので、このコードを盗むことができるはずです!