C# İle Fax Göndermek
-
Uygulama alanlarına baktığımızda genellikle bayiler arası iletişimin sağlanması, farklı lokasyonlarda mail imkanı olmayan iş ortaklarıyla iletişimin sağlanması karşımıza çıkmaktadır. Gerçek hayattan bir örnek vermemiz gerekirse yemek sepetinden verilen bir sipariş ilgili restorana fax ile gönderilmektedir. Esasında fax göndermenin mantığı yazıcının çalışma mantığından çok farklılık taşımamaktadır. Biz bu fonsiyonaliteyi uygulamanıza katmak için bir com bileşeni olan FAXCOMLib kütüphanesini kullanacağız. Biraz sonra kodlarını paylaştığımda esasında çok kolay kullanımı olduğunu göreceksiniz.
Öncelikle uygulamamıza FAXCOMLib kütüphanesini referans ekleyerek başlıyoruz.
Uygulamamızda bu kütüphanenin bizlere sunduğu FaxServer ve FaxDoc interface'lerini kullanıyor olacağız. Bunun yanısıra FaxServerClass veya FaxDocClass nesnelerini de kullanmamız mümkündür.
Şimdi kodumuzu yazmaya başlayalım.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using FAXCOMLib;
namespace Fax
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Gördüğünüz gibi kodumuza using FAXCOMLib tanımlamasını yapıyoruz. Şimdi ise esas işlemlerin yapılacağı kod bloğumuza gelelim.
public void SendFax(string parFileName, string parFaxNumber, string parSenderName, string parDisplayName, string parRecipientName)
{
FaxServerClass insFaxServerClass = new FaxServerClass();
FaxDoc insFaxDocClass = null;
try
{
insFaxServerClass.Connect(Environment.MachineName);
}
catch (Exception ex)
{
MessageBox.Show("Fax sunucusuna bağlanırken hata");
return;
}
try
{
insFaxDocClass = (FaxDoc)insFaxServerClass.CreateDocument(parFileName);
}
catch (Exception ex)
{
MessageBox.Show("Fax oluşturulurken hata");
return;
}
insFaxDocClass.FaxNumber = parFaxNumber;
insFaxDocClass.SenderName = parSenderName;
insFaxDocClass.DisplayName = parDisplayName;
insFaxDocClass.RecipientName = parRecipientName;
try
{
insFaxDocClass.Send();
}
catch (Exception)
{
MessageBox.Show("Fax gönderilirken hata");
return;
}
insFaxServerClass.Disconnect();
}Yazmış olduğumuz metodu inceleyecek olursak öncelikle FaxServerClass tipindeki nesnenin bir instance'ını alıyoruz, bunun ardından kendi makinemiz üzerinden fax göndereceğimiz için bu nesnenin connect metoduna kendi makinemizin ismini veriyoruz. Bu kısımda başka bir fax sunucusunu kullanacak olsaydık onun ismini vermemiz gerekiyordu. Bu işlemin hemen ardından FaxServerClass nesnemizin örneğinin CreateDocument metoduna fax'ını oluşturmak istediğimiz dosyanın yolunu veriyoruz. Fax bir yazıcı gibi çalıştığından bu kısımda bir dosya tipi sınırlamamız yoktur. Hemen arkasından FaxDocument nesnemizin FaxNumber property'sine fax'ı göndermek istediğimiz numarayı atıyoruz. Bunun yanısıra SenderName, RecipientName, DisplayName, gibi bilgileri ve Coverpage gibi bilgileri de ekleyebiliyoruz. Bu nesnenin çok fazla property'si olduğundan burada bunları tek tek açıklamayacağım ancak hepsi isimlerinden anlaşılan property'ler. Bu işlemlerinden ardından son adımda FaxDocClass nesnemizin Send metodunu çağırarak fax'ımızı göndermiş oluyoruz. Son olarak da sunucudan bağlantımızı kesmemiz gerekiyor.
private void Form1_Load(object sender, EventArgs e)
{
SendFax(@"C:\Users\Tamer\Desktop\a.docx", "23423423", "sdfsd", "fsdfsd", "fsdfsdf");
}
}
}Bu işlemlerin hemen ardından açağıdaki gibi bir fax penceresi karşımıza açılacaktır.
Umarım faydakı bir makale olmuştur.
Tamer Öz -
saolasın hocam
-
bu işlemin web ayağıda varmıdır ? Direk site üzerinden fax gönderme gibi
-
Benim bidiğim kadarıyla yok. Ama elinde kaynak olan varsa bizimle paylaşırsa güzel olur (:Don'tmissthisinvestmentopportunity,checkthat[URL=http://myfxadvice.com]forexinvestment[/URL]
-
http://www.webservicex.net/WCF/Services.aspx?CID=2
bu sitede cesitli web servisler var bunları kullanarak destekleyen ulkelerde sms felanda atıyor
fax atan bıtanesıde varhenuz kullanıp denemedım ıhtıyacım olmadı ama denemeye deger
-
webservislere tam anlamıyla adapte olamadım bi türlü.. çok ezik bi yönüm oldu bu