Как сгенерировать факс и отправить его в коде

У меня есть бизнес-требование, чтобы сгенерировать факс и отправить его получателю. Я знаю имя получателя и номер факса, и к нему прилагается PDF-файл. Этот процесс будет выполняться ежедневно и состоит из 100 записей для обработки каждый раз. У меня сложилось впечатление, что это можно сделать, отправив электронное письмо на факсимильный аппарат, и быстрый тест в Outlook сработал просто отлично. Однако, если я попытаюсь сделать то же самое в коде, я получу ошибку о том, что почтовый адрес неверен.

MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("[Fax:myUser@5555555555]"));

Какие есть варианты отправки факсов из кода? (.NET) Эти факсы носят конфиденциальный характер...


РЕДАКЦИОННАЯ ИНФОРМАЦИЯ

Моя компания использует Right Fax.

4 ответа

Решение

Вот код, который может помочь. Используется библиотека 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();

Вы можете использовать службу факсов Microsoft, но вам нужно будет настроить факс-сервер. Поиск 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

Мы используем RightFax DLL. Это будет работать только в том случае, если в вашей сети есть RightFax.

Вы также можете использовать eFax, и в этом случае вы отправляете по электронной почте PDF (отправленный по факсу документ) на eFax, и они отправят его вам по факсу! Они очень дешевые.

Другие вопросы по тегам