2.3. Dаsturning texnik topshirig’i va infologik tаvsifi
Email muloqot
. Elektron pochta yordamida dunyodagi barcha Elektron pochtaga ega bo’lgan shaxslar, tashkilotlar, muassasalar, idoralar va boshqalar bilan aloqa o’rnatish imkoniyatlari mavjud. Eng muhimi, bu aloqa tez va arzon. Bu usul bilan dunyo qit’alari bilan bir zumda bog’lanib sizga va sizning suhbatdoshlaringizga tegishli ma’lumotlarni hamda sizni qiziqtirgan savollarga javobni bir necha sekundda olishingiz mumkin.
Elektron pochta orqali faqat matnlarni emas, balki rasm, grafik, video, tovushlardan tashkil topgan ma’lumotlarni ham jo’natish va qabul qilish imkoniyati paydo bo’ldi.
Elektron pochta orqali olingan fayllarni disketlarga yozib olish, vinchestr disklarda saqlash va u bilan boshqa fayllar ustida bajariladigan amallarni: tahrirlash, nusxa olish va boshqalarni bemalol amalga oshirish mumkin.
Elektron pochtaning ajoyib xususiyatlaridan biri - u masofa tanlamaydi va uzoq, yaqin masofalar ham har doim yaqin masofadek tuyulaveradi.
Elektron pochta (E-mail – Electron Mail) – bir kompyuterdan boshqasiga shaxsiy xabarlarni uzatishni qulay va puxta vositasidir. Elektron pochtani alohida xususiyati uni ikkita Amaliy dasturga asoslanganidir. Ulardan biri birlamchi xabarlarni jo’natish uchun, boshqasi esa keluvchi xabarlarni olish uchun ishlatiladi. Mos ravishda internet tomonidan elektron pochtani ishi ikkita server bilan ta’minlanadi: birlamchi xabarlar serveri va keluvchi xabarlar serveri.
SMTP protokolini bosh maqsadi elektron pochta xabarlarini puxta va samarali yetkazib berishdir.
Elekron pochta server yordamida ishlovchi dastur bir nechta pochtalardagi xabarlarni o'qish va yuborish jarayonini ta'minlash uchun xizmat qiladi.
2.3.1-chizma. Email muloqot
Bu dasturning “xabar yuborish” qismida biz (“foydalanuvchi” tugmasini bosganda yangi oyna ochiladi) pochtalarimiz ro'yxatini kiritishimiz lozim.
2.3.2-chizma. Foydalanivchi oynasi
Bundan tashqari biz Send Email oynasiga qaytib, ushbu oynadagi do’stlar tugmasini bossak, barcha do’stlarimiz pochtalarini kiritishimiz, yoki oldindan kiritilganlarni ko’rishimiz imkoniyatiga egamiz. Quyida do’stlar oynasining ko’rinishini keltiramiz:
2.3.3-chizma. Do’stlar oynasi
Send Email oynasiga o’tgandan keyin biz foydalanuvchilar va do’stlar ro’yxatidan foydalanib o’z pochtamizdan do’stlarimizga xabar yuborishimiz mumkin. Bu ish, ya’ni, xabarni jo’natish “send” tugmasini bosish orqali amalga oshiriladi.
2.3.4-chizma. Xabar jo’natish
Endi bu dasturning kod qismiga o’tib, yuqoridagi jarayonlar qanday amalga
oshirilishi bilan tanishamiz.
2.3.5-chizma. “Xabar yuborish” tugmasi bosilganda dastur ishi
“Xabar yuborish” tugmasi bosilganda dastur nima ishlar qilishini ko’ramiz:
2.3.6-chizma.”Xabar yuborish” tugmasini bosish kodi
Demak, xabar yuborish tugmasi bosilganda bizga “Form1” yangi oyna ochiladi. Bu oyna xabar yuborish oynasi hisoblanadi.
“Qabulqilish” tugmasi bosilganda esa xuddi shunday kelgan xabarlarni ko’rish uchun “frmuqish” nomli yangi oyna ochiladi.
2.3.7-chizma. “frmuqish” nomli yangi oyna kodi
Quyida bu yangi formalarning ichki qismi (kod qismi) bilan tanishamiz:
-
Xabar yuborish oynasining kod qismi.
.3.8-chizma. Xabar yuborish oynasi
Forma yuklanganda:
2.3.9-chizma. Formani yuklash kodi.
Chaqir() metodi:
2.3.10-chizma. Foydalanuvchilar ro’yxati bilan to’ldirish.
Send (xabar yuborish) tugmasi bosilganda:
.3.11-chizma. Xabar yuborish kodi.
Service comboBoxdan tarmoq tanlanganda:
2.3.12-chizma. Tarmoq tanlashdagi kod.
Do’stlar tugmasi bosilganda:
2.3.13-chizma. Do’stlar tugmasi bosilgandagi kod.
Foydalanuvchi tugmasi bosilganda:
2.3.14-chizma. Foydalanuvchi tugmasi bosilgandagi kod.
Foydalanuvchi oynasining ko’rinishi:
2.3.15-chizma.Foydalanuvchi oynasining ko’rinishi.
Forma yuklanganda:
2.3.16-chizma. Formani yuklash kodi.
Service comboBox dan tarmoq tanlanganda:
2.3.17-chizma. Serviceni comboBox dan tanlash
O’chirish tugmasi bosilganda:
2.3.18-chizma. O’chirish tugmasining kodi
Yuqoridagi kodlar yordamida o’chirish oynasi hosil bo’ladi. Hosil bo’lgan oyna orqalido’stlarimiz ro’yxatida turgan ortiqcha hisoblanganlarini o’chirib tashlashimiz mumkin bo’ladi.
Qo’shish tugmasi bosilganda:
2.3.19-chizma. Qo’shish tugmasining kodi
oyna hosil bo’ladi. Bunda biz do’stlarimiz ro’yxatiga yangi do’stlarimizni ham qo’shib qo’yishimiz mumkin.
Xotima
Elektron pochta bu kompyuter orqali muloqotning eng universal vositasidir. U axborotni istalgan kompyuterdan istalgan boshqa kompyuterga (agar ular elektron pochta tarmog’iga ulangan bo’lsa) yuborishi mumkin. Chunki hozirgi tizimda ishlaydigan turli xil shaxsiy kompyuterlarning (ShK) ko’pchiligi uni qo’llaydi. Oddiy pochtadek Elektron pochtada ham aloqa bo’limlari bo’lib, ular provayderlar deb ataladi. Elektron pochta yordamida dunyodagi barcha Elektron pochtaga ega bo’lgan shaxslar, tashkilotlar, muassasalar, idoralar va boshqalar bilan aloqa o’rnatish imkoniyatlari mavjud. Eng muhimi, bu aloqa tez va arzon. Elektron pochta (E - Mail) – Internetning eng ko’p tarqalgan xizmatlaridan biri. Elektron pochtani jo’natish va ularga javob berish qulayligi tufayli, u oddiy bir guruh olimlar orasida axborot almashishdan butun dunyo bo’yicha tarqalib ketdi.
Elektron pochtaning boshqa turdagi axborot almashinishidan ko’p afzallik tomonlari bor. Elektron pochta orqali jo’natilgan xat 5 - 10 minut ichida (muvaffaqiyatli holda) dunyoning xohlagan burchagiga yetib borishi mumkin. Bu uning oddiy pochtadan qancha tezligini ko’rsatadi. Oddiy telefondan afzallik tomoni esa uning nisbatan juda arzonligidir. Birlamchi xabarlar xizmati SMTP (Simple Mail Transfer Protocol – pochtani uzatishning soddaroq protokoli ) ga asoslangan. Birlamchi xabarlar xizmatini eng ko’p tarqalgan protokoli POP (Post Office Protocol- pochta bo’limi protokoli)dir.
SMTP protokolini bosh maqsadi elektron pochta xabarlarini puxta va samarali yetkazib berishdir.
SMTP ga muhit bo’lib ayrim lokal tarmoq yoki Internet tarmog’i xizmat qilishi mumkin. POP protokoli foydalanuvchining pochta qutisidagi (pochta serveridan) xabarlarni ularning ish joylariga tanlash uchun mo’ljallangan. Shunday qilib, foydalanuvchilar Internet orqali SMTP protokoli bo’yicha korrespondensiya jo’natilsa, POP protokoli bo’yicha foydalanuvchilar pochta serveridagi o’zlarini, pochta qutisidagi korrespondensiyani oladilar. POP ni ikki versiyasi keng tarqalgan: POP2 va POP3. Hozirgi vaqtda POP3 protokoli tez-tez ishlatiladi.
ADABIYOTLAR
1. I.A.Karimov “Yuksak ma’naviyat – yengilmas kuch”. T. “Ma’naviyat”. 2008.
2. Oliver Sturm “Functional Programming in C#: Classic Programming Techniques for Modern Projects”,M:VINITI, 2008, 1-рарагров.
3.В. Лабор “Создание приложений для Windows” Минск. “Харвест”.2003,35-44ctp
4. Зиборов В.В. “Visual С 2010 на примерах”Санкт-Петербург “БХВ- Петербург”. 2011, 165-186стр
5. Зиборов В.В. “Visual С 2012 на примерах” Санкт-Петербург “БХВ- Петербург”. 2012, 172-188стр
6. Ватсон Б. “С# 4.0 на примерах” Санкт-Петербург “БХВ- Петербург”,2009 8 стр – 98 стр
7. Дрейер М. “С# для школъников” M. “Харвест”, 2010,15 стр -141cтр
8. Мэтью Мак-Дональд. “ws Presentation Foundation в .NET 4.0 с примерами на C# 2010” M.: VINITI, 2010, 78стр – 187стр.
Ilova
using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net;
using System.Data.OleDb;
using System.Data;
namespace SendEmail{
public partial class Form1 : Form{
public Form1(){
InitializeComponent();
}
public string line1;
private void Form1_Load(object sender, EventArgs e){
Service_CB.SelectedIndex = 0;
chaqir();
string Spcmd;
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + line1);
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
Spcmd = "select pochta from dust ";
cmd.CommandText = Spcmd;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
RecipientEmail_TB.DataSource = dt;
RecipientEmail_TB.DisplayMember = "pochta";
}
private void chaqir()
{
string Spcmd;
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + line1);
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
Spcmd = string.Format("select id,mailnomi from foydalan where indeks={0}", Service_CB.SelectedIndex + 1);
cmd.CommandText = Spcmd;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
SenderEmail_TB.DataSource = dt;
SenderEmail_TB.DisplayMember = "mailnomi";
}
private void Send_Button_Click(object sender, EventArgs e){
if (Service_CB.SelectedIndex == 0){//localhost
using (MailMessage mm = new MailMessage(SenderName_TB.Text + " <" + SenderEmail_TB.Text + ">", RecipientEmail_TB.Text)){
mm.Subject = Subject_TB.Text;
mm.Body = MailText_TB.Text;
mm.IsBodyHtml = IsHTML_CB.Checked;
using (SmtpClient sc = new SmtpClient("127.0.0.1")){
sc.Send(mm);
}
}
}else if (Service_CB.SelectedIndex == 1){//Gmail
using (MailMessage mm = new MailMessage(SenderName_TB.Text + " <" + SenderEmail_TB.Text + ">", RecipientEmail_TB.Text)){
mm.Subject = Subject_TB.Text;
mm.Body = MailText_TB.Text;
mm.IsBodyHtml = IsHTML_CB.Checked;
using (SmtpClient sc = new SmtpClient("smtp.gmail.com", 587)){
sc.EnableSsl = true;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.Timeout = 30000;
sc.Credentials = new NetworkCredential(SenderEmail_TB.Text, AccountPassword_TB.Text);
sc.Send(mm);
}
}
}else if (Service_CB.SelectedIndex == 2){//Yandex
using (MailMessage mm = new MailMessage(SenderName_TB.Text + " <" + SenderEmail_TB.Text + ">", RecipientEmail_TB.Text)){
mm.Subject = Subject_TB.Text;
mm.Body = MailText_TB.Text;
mm.IsBodyHtml = IsHTML_CB.Checked;
using (SmtpClient sc = new SmtpClient("smtp.yandex.ru", 25)){
sc.EnableSsl = true;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.Timeout = 30000;
sc.Credentials = new NetworkCredential(SenderEmail_TB.Text, AccountPassword_TB.Text);
sc.Send(mm);
}
}
}else if (Service_CB.SelectedIndex == 3){//Mail.ru
using (MailMessage mm = new MailMessage(SenderName_TB.Text + " <" + SenderEmail_TB.Text + ">", RecipientEmail_TB.Text)){
mm.Subject = Subject_TB.Text;
mm.Body = MailText_TB.Text;
mm.IsBodyHtml = IsHTML_CB.Checked;
using (SmtpClient sc = new SmtpClient("smtp.mail.ru", 25)){
sc.EnableSsl = true;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.Timeout = 30000;
sc.Credentials = new NetworkCredential(SenderEmail_TB.Text, AccountPassword_TB.Text);
sc.Send(mm);
}
}
}
}
private void Service_CB_SelectedIndexChanged(object sender, EventArgs e){
AccountPassword_TB.Enabled = Service_CB.SelectedIndex != 0;
chaqir();
}
private void MailText_TB_TextChanged(object sender, EventArgs e)
{
}
private void IsHTML_CB_CheckedChanged(object sender, EventArgs e)
{
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void dust_Click(object sender, EventArgs e)
{
formm.dustlar fd = new formm.dustlar();
fd.path = line1;
fd.Show();
}
private void foydalan_Click(object sender, EventArgs e)
{
formm.foydalan df = new formm.foydalan();
df.path = line1;
df.Show();
}
private void AccountPassword_TB_TextChanged(object sender, EventArgs e)
{
}
}
}
|