1

ユーザーの介入なしに、Gmailアカウントから既知の構造のメールを送受信しようとしています。

C ++またはPythonを使用して、複雑にすることなくFirefox拡張機能からIMAPおよびSMTP接続を確立するエレガントな方法はありますか?

4

2 に答える 2

1

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ベースの実装はまだ準備ができていないため使用できません)。

于 2012-07-30T09:47:17.000 に答える
0

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接続なので、このコードを盗むことができるはずです!

于 2012-07-30T08:51:00.360 に答える