2009-06-12 109 views
3

我有一个业务需求来生成传真并将其发送给收件人。我知道收件人姓名和传真号码,并附有一份PDF。这个过程每天都会运行,每次处理100个记录。我的印象是,这可以通过发送电子邮件到传真机来完成,而Outlook中的快速测试工作得很好。但是,如果我尝试在代码中执行相同的操作,则会收到有关邮件地址无效的错误。如何生成传真并以代码形式发送

MailMessage msg = new MailMessage(); 
msg.To.Add(new MailAddress("[Fax:[email protected]]")); 

从代码发送传真的选项有哪些? (.NET)这些传真都是属机密性质...


EDITED信息

我公司确实使用右传真。

+0

你总是可以直接使用SMTP ... – 2009-06-12 19:23:59

+0

@约翰 - 你可以为这个样本/解决方案? – RSolberg 2009-06-12 20:38:23

回答

6

下面是一些可能有所帮助的代码。这是使用权传真COM API库(rfcomapi.dll)

RFCOMAPILib.FaxServerClass faxserver = new RFCOMAPILib.FaxServerClass(); 
faxserver.ServerName = "ServerName"; 
faxserver.Protocol = RFCOMAPILib.CommunicationProtocolType.cpNamedPipes; 
faxserver.UseNTAuthentication = RFCOMAPILib.BoolType.True; 
faxserver.OpenServer(); 

RFCOMAPILib.Fax fax = (RFCOMAPILib.Fax) faxserver.get_CreateObject(RFCOMAPILib.CreateObjectType.coFax); 

// set up your 'fax' object the way you want it, below is just some sample options 
fax.ToName = "John Doe"; 
fax.ToFaxNumber = "4255551111"; 
fax.ToVoiceNumber = "4255550000"; 
fax.ToCompany = "ACME"; 
fax.FromName = "My Company"; 
fax.FromVoiceNumber = "4255552222"; 

fax.Send(); 
2

您可以使用Microsoft Fax服务,但需要设置传真服务器。Google搜索应返回一些示例。

增加提及Interop.FAXCOMLib.dll

下面是一个例子(vb.net):

Dim fs As FAXCOMLib.FaxServer 
    Dim fd As FAXCOMLib.FaxDoc 
    Dim result As Integer 

    fs = New FAXCOMLib.FaxServer() 
    fs.Connect("FaxServer1") 

    fd = CType(fs.CreateDocument("c:\documenttofax.pdf"), FAXCOMLib.FaxDoc) 
    fd.RecipientName = "John Doe" 
    fd.FaxNumber = "555-1234" 

    Try 
     result = fd.Send() 
    Finally 
     fs.Disconnect() 
    End Try 
0

您也可以使用电邮传真在这种情况下,您通过电子邮件发送PDF(传真件)电子货币,他们会传真给你!他们很便宜。

+1

我不确定我会信任“本质上属于保密性”的文件到传真服务。 – 2009-06-18 15:40:15

2

我们使用RightFax DLL。这只会在你的网络上有RightFax的时候起作用。