C# hesap makinesi
Evet geçen hafta itibari ile ben ve ceyda ablam iş kadını olarak Siskon Otomasyon da işe başladık.Bizden istenilen ilk iş hesap makinesi oluşturmaktı ve uzun uğraşlar sonucu başardık.Bir tek geri tuşu çalışmıyor ama idare edin artık.Bu arada c# ile otomatik e-mail gönderilmesi konusunda bilgisi olan arkadaşlar versa her türlü yardıma da açığız… Hadi bakalım şimdi de sizinle güzel hesap makinemizin kodlarını paylaşayım da belki siz bir kaç değişiklikle daha güzel hale getirirsiniz…
1 Yorum
Yorum yaz








——————–
using System;
using System.Net.Sockets;
using System.IO;
namespace SendMailviaSMTP
{
public class SMTPMailSender
{
string mvarSMTPServerAddress;
string mvarSenderName;
string mvarSenderEmailAddress;
string mvarRecipientName;
string mvarRecipientEmailAddress;
string mvarEmailSubject;
string mvarEmailBody;
int mvarSMTPTimeOut;
int mvarSMTPRemotePort;
TcpClient tclSMTP;
NetworkStream nstSMTP;
StreamReader strSMTP;
StreamWriter stwSMTP;
DateTime dteTimeOutCheck;
public SMTPMailSender()
{
mvarSMTPTimeOut = 60;
mvarSMTPRemotePort = 25;
}
public bool SendEmail()
{
//SMTP sunucusu ile bağlantı kuruluyor
//Connecting to SMTP Server
tclSMTP=new TcpClient();
try
{
tclSMTP.Connect(mvarSMTPServerAddress,mvarSMTPRemotePort);
}
catch
{
return false;
}
nstSMTP=tclSMTP.GetStream();
stwSMTP=new StreamWriter(nstSMTP);
strSMTP=new StreamReader(nstSMTP);
//mta’dan karşılama mesajı bekleniyor
//waiting for greeting message from MTA
if (WaitForResponse(”220″))
{
//mta’ya karşılama mesajı gönderiliyor
//sending greeting message to MTA
stwSMTP.WriteLine(”HELO ” + mvarSMTPServerAddress);
stwSMTP.Flush();
}
else
{
tclSMTP.Close();
return false;
}
if (WaitForResponse(”250″))
{
//gönderici email adresi gönderiliyor
//sending sender email address to MTA
stwSMTP.WriteLine(”mail from:” + mvarSenderEmailAddress);
stwSMTP.Flush();
}
else
{
tclSMTP.Close();
return false;
}
if (WaitForResponse(”250″))
{
//alıcı email adresi gönderiliyor
//sending recipient email address to MTA
stwSMTP.WriteLine(”rcpt to:” + mvarRecipientEmailAddress);
stwSMTP.Flush();
}
else
{
tclSMTP.Close();
return false;
}
if (WaitForResponse(”250″))
{
//mail’i yazmak için data moduna geçiliyor
//switching to data mode for entering body of the mail
stwSMTP.WriteLine(”data”);
stwSMTP.Flush();
}
else
{
tclSMTP.Close();
return false;
}
if (WaitForResponse(”354″))
{
//mesajin body kısmı hazırlanıyor
//preparing the body section of the email
string strSMTPData=”";
strSMTPData=”From:” + mvarSenderName + Environment.NewLine;
strSMTPData+=”To:” + mvarRecipientName + Environment.NewLine;
strSMTPData+=”Subject:” + mvarEmailSubject + Environment.NewLine + Environment.NewLine;
strSMTPData+=mvarEmailBody + Environment.NewLine + “.” + Environment.NewLine;
//mesaj gönderiliyor
//sending message
stwSMTP.Write(strSMTPData);
stwSMTP.Flush();
}
else
{
tclSMTP.Close();
return false;
}
if (WaitForResponse(”250″))
{
//gönderim başarılı ise değer true döndürülüyor
//returns true if the send process succeeds
tclSMTP.Close();
return true;
}
else
{
tclSMTP.Close();
return false;
}
//gönderim başarısız ise değer false döndürülüyor
//returns false if the send process fails
tclSMTP.Close();
return false;
}
bool WaitForResponse(string strResponseCode)
{
//zamanaşımı kontrolü için mevcut tarih saat bilgisi alınıyor
//gathering current date time data for timeout check
dteTimeOutCheck=DateTime.Now;
//zamanaşımı değeri bulunuyor
//calculating timeout value
TimeSpan tsp=DateTime.Now-dteTimeOutCheck;
//zamanaşımı değeri kullanıcının belirlediği değeri aşıncaya kadar döngü çalıştırılıyor
//looping code until the timeout exceeds the user defined value
while(tsp.Seconds
————–
sanırım istediğini karşılayabilir. c# alışamadığım bir dildir.