google apps smtp c# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
google apps smtp c# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Şubat 2010 Cuma

Web Sitesinde Oluşan Hataları SMS ile Öğrenmek

Kazanın, geliyorum, demeyeceğini hepimiz biliyoruz. Ama bazen, kazanın gelmiş olduğunun haberi bile, zararın boyutlarını azaltmak açısından büyük öneme sahip olabilir. Hele ki söz konusu olan, işletmelerimizin internetteki temsili olan web sitelerimiz ise, hem maddi kayıplar, hem müşteri memnuniyetsizliği söz konusu olabilir.

Çalışma zamanında oluşan hatalardan ya da uygulamanın illegal erişimlere karşı yükselttiği hata seslerinden anında haberdar olmak nasıl mümkün olacak? Elbette sistemdeki tüm etkinlikleri olay görüntüleyicilerden ya da diğer log dosyalarından öğrenebiliriz. Ama biz, log dosyaları arasında ayrıntıları yakalamaya çalışırken, çok şey kaybetmiş de olabiliriz. Aşağıda anlatacağım yöntem, Google Calendar Api ve C# kullanarak tarafımızdan yazılmış ve web sitesinde oluşan bütün hataları, en geç 2 dakika içinde size SMS yolu ile bildirebilecek bir uygulamadır. başarısından memnun kalınmış bir yöntemdir.

Ne gerekiyor?
1) Google Calendar'a erişim için bir Google hesabı. Gmail hesabınız var ise, Google diğer hizmetlerine olduğu gibi Google Calendar'a da ayrıca bir üyelik gerekmeden erişebilirsiniz.
2) Yazılımımızı Google Calendar ile bağlantılayacak olan uygulama arayüzleri (API) http://code.google.com/p/google-gdata/downloads/list adresinden .NET platformu için gereken paketleri indirebilirsiniz.
3) Google Calendar hesabınıza, GSM numaranızı kaydetmek ve SMS yolu ile gelen doğrulama kodunu, Google Calendar'a bildirmek
4) Uygulamamız için hazırlanmış bir adet Global.ASAX dosyası.

Uygulamanın Anatomisi

Google Calendar'a girdiğiniz etkinlikler; etkinliğie belirli bir süre kala(bu süreyi de siz beliyorsunuz, 1 saat, 1 gün, 1 dakika vs.) size seçeceğiniz bir yolla SMS ya da Email etkinlik hatırlatması gönderiyorlar. Uygulamamız da Google Calendar'ın bu özelliği üzerine bina edilecek. Uygulamamızda bir hata oluştuğunda,;Google Calendar'a bir etkinlik gireceğiz ve bu etkinliğin gerçekleşme zamanı, uygulamamızdaki hatanın oluştuğu zamandan 2 dakika sonrası olarak planlanacak ve yine girdiğimiz bu etkinliğe bir de etkinlik için hatırlatma gireceğiz ve bu hatırlatma, etkinlik tarihine 1 dakika kala bize SMS yolu ile yapılacak. İşte bütün mantık bu..

Kod Arka Planı

Global.asax (Global Application Class - Genel Uygulama Sınıfı) dosyası bilindiği gibi uygulama olaylarını yazabileceğimiz bir dosya. Uygulama başlangıçı ve bitişini imleyen olayların yer aldığı bu dosyada, oturum başlangıcında ve bitşiinde tetiklenecek olaylar da yer almaktadır.
Uygulamamızda bir Global.ASAX dosyası yaratıyoruz.
Hemen sonra, bu kütüphaneleri uygulamamıza referans olarak ekliyoruz. Sistemimize bağlantı kütüphaneleri (DLL) referans olarak eklendikten sonra, aşağıdaki ad alanlarını sistemimize ekliyoruz.
< % @ Import Namespace="Google.GData.AccessControl" % >
< % @ Import Namespace="Google.GData.Calendar" % >
< % @ Import Namespace="Google.GData.Client" % >
< % @ Import Namespace="Google.GData.Extensions" % >

Esas işi yapacak olan koda geldi sıra. Aşağıdaki kodu da, Google hesabınıza ait gerekli bilgileri girerek, Global.ASAX dosyamızdaki Application_Error olayına ekliyoruz.

Exception hata = Server.GetLastError();

CalendarService myService = new CalendarService("uygulama1");

myService.setUserCredentials(account@gmail.com, "password");

Google.GData.Calendar.EventEntry entry = new Google.GData.Calendar.EventEntry
(Request.Path.ToString()+":"+hata.InnerException.Message, Request.Path.ToString()
+":"+hata.InnerException.Message, "web");


DateTime zaman = new DateTime(DateTime.Now.Year, DateTime.Now.Month,

DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.AddMinutes(2).Minute, 0);

When eventTime = new When(zaman, zaman.AddMinutes(3));

Reminder r = new Reminder();

r.Method = Reminder.ReminderMethod.sms;

r.Minutes = 1; entry.Times.Add(eventTime);

entry.Reminders.Add(r);

Uri postUri = new Uri("http://www.google.com/calendar/feeds/default/private/full");

myService.Insert(postUri, entry);


Hepsi bu kadar.
Kolaylıklar dilerim,
Saygılarımla.




30 Aralık 2009 Çarşamba

Google Apss Hesabını Kullanarak C# 'da Mail Gönderme

Merhabalar;
Bildiğiniz gibi, Google Apps işletmeler için, özellikle de küçük ve ortak ölçekli işletmeler için ücretsiz bazı özellikler sundu. Mesajlaşma ve Ortak Çalışma başlıklarını içeren bu uygulamaların standart sürümü ücretsiz ve çalışanlarınıza elli kullanıcıya kadar üyelik hesabı verebiliyorsunuz.
Mesajlaşma ve Ortak Çalışma uygulamaları, istisnasız Google Docs, Google Calendar ve Gmail'in bütün özelliklerini barındırıyor. Hepsinden de önemlisi, siz maillerinizi Google'ın sunucularında saklayarak işletme maliyetinizin bir kısmından tasarruf etmiş oluyorsunuz.
Uygulamaya dilerseniz, http://Google.com.tr/apss adresinden, dilerseniz de gerekli CNAME ve MX ayarlarını yaparak kendi etki alanı adınız üzerinden erişebiliyorsunuz.
Bazıları için bu yeterli olmayabilir. Mail gönderme ve alma işlemini yalnız web arayüzünden değil, kendi uygulamanızdan da gerçekleştirmek, Google'ı bütün performanslarıyla birlikte yalnızca bir arkauç sunucusu olarak kullanmak isteyebilirsiniz. Nitekim, yurtdışında pek çok kullanıcı forumunda bu konuda başlıklar açıldığını görüyoruz.
Biz de C# ile hazırladığımız uygulamalarımızda Google Apps hesabımızı kullanarak nasıl mail gönderebileceğimizi göreceğiz.

Neden bu tür bir yazıya ihtiyaç duyuldu?

Normal şartlar altında, kendi uygulamalarınızda, mail sunucunuz üzerinden posta göndermek için mail.domainadi.com gibi bir SMTP sunucu adresi belirterek bu işi halledebiliyorduk.
Google Apps'ın standart işletme sürümünü kendi etki alanımızda kullanmak istediğimiz için MX kayıtlarımızı ve CNAME'leri Google'ın talimatları doğrultusunda değiştirdik.

Başlıyoruz

Öncelikle uygulamamızda System.NET.Mail ad alanını ekliyoruz.

using System.Net.Mail;

Aşağıdaki kodu uygulamanızın konfigürasyon dosyasına, yani web.config 'e ekleyn

< smtp deliverymethod="Network" from="ornek@domain.com" >

< from="example@domain.com" deliverymethod="Network"> < / smtp >
Ve uygulamamızdan maili göndermek için aşağıdaki kodu kullanıyoruz

MailMessage nesnemizi yarattıktan sonra ve özelliklerini atadıktan sonra, konumuzla esas ilgisi olan SMTP nesnemizi yaratıyoruz.

var client = new SmtpClient();
client.EnableSsl = true;
client.Send(MailMessageNesnesi);

işte bu kadar.


Kolaylıklar dilerim.

ziyahan[at]yazilim.tv