2011-01-12 8 views
2

私は効率的にRightFaxでファックスを送信しようとしています。RightFax C#through RFCOMAPILib - 添付ファイル

私のユーザーはPDFをファックスする必要がありますが、アプリケーションが正常に動作していても、バルク送信(受信者20人以上、ファックス1通あたり40秒)が非常に遅いです。

// Fax created 
fax.Attachments.Add(@"C:\\Test Attachments\\Products.pdf", BoolType.False); 
fax.Send(); 

RightFaxは、私たちはそれをサーバー上のライブラリのドキュメントとしてPDFドキュメントを保存し、再利用することでした何ができると思ったので、何*ライブラリドキュメント、この概念を持っているので、アップロードする必要はありませんnユーザーのためのこのPDF。

私は問題なくライブラリドキュメントを作成できます(私はそれらを取得するなどができます)が、どのようにこれにPDFを追加できますか? (私は、サーバー上の権限を持っている。)

LibraryDocument doc2 = server.LibraryDocuments.Create; 
doc2.Description = "Test Doc 1"; 
doc2.ID = "568"; // tried ints everything! 
doc2.IsPublishedForWeb = BoolType.True; 
doc2.PageCount = 2; 
doc2.Save(); 

私はファックスを作成したら、また、APIを使用すると、実行例外がスローされた「StoreAsNewLibraryDocument」にオプションを提供します。 System.ArgumentExceptionの:値が

fax.StoreAsNewLibraryDocument("PRODUCTS","the products"); 

予想範囲内に収まっていないどのような私たちのために重要なのは言うRFCOMAPILibを通じてAPIを使用して可能な限り最も効率的な方法で500件のファクスを送信する方法です。 を再利用すれば PDFを添付すれば、性能が大幅に向上すると思います。明らかに、40秒間にファックスを送信することは、何百人もの受信者がいる場合は容認できません。

添付ファイルを含むFAXを最も効率的なモードでAPIを使って送信するにはどうすればよいですか?

+0

これは非常に基本的な技術的な制限です。ファックス機は電話回線で動作し、信号速度は最高で14.4 kbpsです。電子メールで迷惑メール対策を選択すると、インターネット速度が10 Mbps以上になることがあります。 –

答えて

1

StoreAsNewLibraryDocument()は、RightFax COM APIを使用してLibraryDocumentsを格納する唯一の実用的な方法ですが、既存のLibraryDocumentを使用していないと仮定すると、最初のファックスを送信した直後に関数を呼び出す必要があります。通常のファイル(ではなく LibraryDoc)添付。

(上記のように、自分自身でサーバー上にLibraryDocオブジェクトを作成しないでください。サーバー上にLibraryDocumentではない既存のファイルがあり、それを作成したい場合にのみ行います。

新しいLibraryDocumentは、StoreAsNewLibraryDocument()の最初の引数として指定したID文字列によって参照されます(後続のFAX添付ファイルで)。そのIDがRightFax ServerのLibraryDocumentsコレクションに対して一意でない場合は、エラーが発生します。 (実際にサーバー上のファイルを置き換える場合は、代わりにStoreAsLibraryDocumentUpdate()を使用できます)。また、必ずAttachmentTypeを指定するようにしてください。理論的には

、これはあなたが本当にしなければならないすべてでなければなりません:


'まずファックス:

fax.Attachments.Add(@"C:\\Test Attachments\\Products.pdf", BoolType.False); 
fax.Attachments.Item(1).AttachmentType = AttachmentType.aFile; 
fax.Send(); 
fax.StoreAsNewLibraryDocument("PRODUCTS", "The Products"); 
server.LibraryDocuments("PRODUCTS").IsPublishedForWeb = BoolType.True; 

' 以降のすべてのFAXの:

fax.Attachments.Add(server.LibraryDocuments("PRODUCTS")); 
fax.Attachments.Item(1).AttachmentType = AttachmentType.aLibraryDocument; 
fax.Send(); 

私が「理論上」と言うのは、が必ずしも働かないからです。 StoreAsNewLibraryDocument()を呼び出すと、PageCountが0のLibraryDocが終了することがあります。これは一見無作為に起こります。おそらく、RightFaxのバグ、おそらくサーバーの誤設定のためです。だから、(それがない場合)LibraryDocを格納し、それが動作するまでは、後続のファックスのいずれか、および必要に応じて再試行を送信する前に...

server.LibraryDocuments("PRODUCTS").PageCount = 0 

...を確認したり、することは非常に良い考えですそれ以外の方法でStoreAsNewLibraryDocument()をあきらめてください。

この問題がなければ、毎回ローカルファイルを添付(およびアップロード)するのに要する時間の約1/10の時間で大量のファックスを送信することができます。

OpenText/RightFaxの誰かがこれを読んで、StoreAsNewLibraryDocument()がゼロページのファックスになることがある理由を説明することができます。

関連する問題