2011-01-20 4 views
12

を使用して添付ファイル付きのメールを送信:は、私はクライアントのマシン上ですぐに、送信された電子メールメッセージを生成するために、私のローカルにインストールされ、シッククライアントアプリケーション(QT/C++)を必要とするクライアントの電子メールアプリケーション

  • このメッセージには、比較的小さな(15K-200K)バイナリファイルの内容が含まれている必要があります。
  • このメッセージが生成された時点で、多くのユーザーが切断されるため、後でメールが送信トレイに置かれる必要があります。
  • このアプリケーションはWindows、Mac OS X、Linuxディストリビューション(Ubuntu/DebianとFedoraの公式サポート)で動作します。特定の電子メールクライアントをインストールする必要はありません。

私はすでに試してみました:

  • attach(またはattachment)パラメータでQDesktopServices::openUrl()を使用してmailto:リンクを開きます。しかし、これらのパラメータは公式にプロトコルの一部ではなく、一部のクライアント(特にOutlook)はそれらを無視します。
  • Base64を使用してファイルをエンコードし、bodyパラメータの一部としてmailto:リンクの一部として追加します。しかし、mailtoリンクの長さは、いくつかの電子メールクライアント(再び、とりわけOutlook)によって切り捨てられているので、これは機能しません。

Google Picasaは、アプリケーション内から写真を送信する際に(少なくともWindowsでは、他のOSはチェックしていません)これを実現します。添付ファイルとあらかじめ入力されたテキストを含むメッセージを作成します。その後、メッセージを編集して都合の良いときに送信することができます。どのように彼らはこれをやっているすべてのアイデア?

答えて

7

.emlファイルを作成して開くことができます。この拡張子を持つファイルを処理するシステムに電子メールクライアントが登録されている限り、効果が得られるはずです。私はこれがmailto:スキームと同じように普遍的ではないと確信していますが、もしmailto:があなたにとってうまくいかない場合、私はこれが試してみるのに二番目の選択肢かもしれないと思います。 http://www.coolutils.com/Formats/EML

から

EMLファイルは、業界RFC 822標準に を遵守するために作成されているので、 彼らは、ほとんどの電子メール クライアント、サーバーおよびアプリケーションで使用することができます。 は、Microsoft Outlook Expressのほか、 EMLファイルは、Microsoft OutlookやMicrosoft Entourageのようなほとんどの の電子メールクライアント、MozillaのThunderbirdの 、Apple Mailの、そして のIncrediMailを使用して開くことができます。

サイドノート
私はPicasaで「Eメール」をクリックすると、私は私が私が電子メールを送信したいアプリケーション(ThunderbirdやGoogleのメール)を選択できるダイアログを取得します。これは、Picasaがメールの送信に使用されている特定のメールクライアントを認識しており、選択したメールクライアントに固有のカスタムメソッドを使用してメールを送信できることを意味します。これは当然のことではありますが、尋ねることを行う一般的な方法がないため、Picasaはユーザーにメールクライアントを選択させる可能性があります。

4

私はあなたが正しいアプローチを使用しているとは思わない。 MAPI/C++を使用してください。私はMAPI/C++を使ってOutlook/Thunderbirdの両方でこれを何度もやりました。レジストリを照会することによって、デフォルトの電子メールクライアントを選択することができます。私はそれがすべてのアプリケーションが何をすると思います。

はまた、ここでいくつかの時間前、私はプラットフォームに依存しない方法でのデフォルトのメールクライアント」を開くための小さなライブラリを書き始めましたhttp://lists.trolltech.com/qt-interest/2006-02/thread00861-0.html

+2

+1、これはWindows上の解決策です。残念ながら、この質問は、クロスプラットフォームソリューションが必要であることを示唆しています... – Stobor

1

リンクを参照してください。依然としていくつかの作業が必要かもしれませんが、望むならベースとして使うことができます:https://github.com/picaschaf/qt-email