Jo’natiluvchi nomi: System.Net.Mail
to’plam : System ( System.dll)
MailMessage konstruktori:
-
MailMessage()-MailMessage sinfida bo’sh nusxa(ekzemplyar) ro’yxatdan o’tkazadi;
-
MailMessage(MailAddress, MailAddress)- MailAddress yordamida MailMessage sinfida yangi nusxa yaratadi;
-
MailMessage(String, String)- String sinfi obyaktlari uchun MailMessage sinfida yangi nusxa yaratadi;
-
MailMessage(String, String, String, String)- MailMessage sinfida yangi nusxa yaratadi.
MailMessage sinfining tarkibi:
-
AlternateViews-altarnativ formadagi xabarlarni saqlovchi amallar to’plamini qaytaradi;
-
Attachments-shu elektron pochtadagi ma’lumotlarni saqlovchi amallar to’plamini qaytaradi;
-
Bcc-shu elektron pochta xabarlarida yopiq holdagidagi to’plamlar manzilini qaytaradi;
-
Body-jo’natuvchi yoki, xabarlarning asosiy qismi saqlanadigan joy;
-
BodyEncoding- egalik qiluvchi yoki kodlashrituvchi xabarlar;
-
BodyTransferEncoding-asosiy matndagi qaytaruvchi yoki jo’natmalarni kodlashtiruvchi imkoniyatlarni yaratadi;
-
CC-qabul qiluvchi elektron pochta xabarlarini manzil to’plamiga qaytaradi.
-
DeliveryNotificationOptions-elektron pochta xabarlarining yuborilgani yoki qabul qilingani to’g’risidagi ma’lumotni qaytaradi.
-
From- elektron pochta yuborilgani yoki qabul qilingan xabarlarining manzili;
-
Headers- elektron pochtada yuborilgan xabarning nomini qaytaradi;
-
HeadersEncoding-elektron pochtada yuborilgan xabarning nomi foydalanuvchi uchun yuborish yoki qabul qilish uchun kodlashtiradi;
-
IsBodyHtml-pochta xabarlarini HTML formatidami yo’qmi, shuni tekshiradi;
-
ReplyTo-pochta xabarlari uchun ReplyTo manzilini yuboradi yoki qabul qiladi;
-
ReplyToList-ushbu elektron pochta so’rovlariga javob beruvchi manzillar ro’yxati;
-
Sender-jo’natuvchi manzilini ko’rsatadi;
-
Subject-elektron pochta xabarlarining temasini ko’rsatadi;
-
SubjectEncoding-elektron pochta xabarlarining temasi kodirovkasini yuboradi;
-
To-elektron pochta xabarlarini jo’natuvchi manzillar to’plami;
-
MailMassage sinfi ekzemplyarlari elektron pochta xabarlarini tayyorlashda SMTP serverga SmtpClient sinfi yordamida jo’natuvchi sinf hisoblanadi. MailMassage dan foydalanishdan oldin MailMassage obyektlari initsializatsiyalovchi jo’natuvchi parametrlari, qabul qiluvchi, nomi va elektron pochta xabarlarini ko’rsatadi. Bu parametrlar ustida ishlash uchun ruxsat MailMessage obyektlari tarkibi orqali amalga oshiriladi.
Quyidagi misolda xabar yasash va jo’natish uchun bajarilgan amallar ketma-ketligi ko’rsatilgan: (C#da)
public static void CreateMessageWithAttachment(string server)
{
// Specify the file to be attached and sent.
// This example assumes that a file named Data.xls exists in the
// current working directory.
string file = "data.xls";
// Create a message and set up the recipients.
MailMessage message = new MailMessage(
"jane@contoso.com",
"ben@contoso.com",
"Quarterly data report.",
"See the attached spreadsheet.");
// Create the file attachment for this e-mail message.
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
// Add time stamp information for the file.
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
// Add the file attachment to this e-mail message.
message.Attachments.Add(data);
//Send the message.
SmtpClient client = new SmtpClient(server);
// Add credentials if the SMTP server requires them.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}",
ex.ToString() );
}
// Display the values in the ContentDisposition for the attachment.
ContentDisposition cd = data.ContentDisposition;
Console.WriteLine("Content disposition");
Console.WriteLine(cd.ToString());
Console.WriteLine("File {0}", cd.FileName);
Console.WriteLine("Size {0}", cd.Size);
Console.WriteLine("Creation {0}", cd.CreationDate);
Console.WriteLine("Modification {0}", cd.ModificationDate);
Console.WriteLine("Read {0}", cd.ReadDate);
Console.WriteLine("Inline {0}", cd.Inline);
Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
foreach (DictionaryEntry d in cd.Parameters)
{
Console.WriteLine("{0} = {1}", d.Key, d.Value);
}
data.Dispose();
}
MailAddress sinfi SmtpClient и MailMessage sinflari bilan birgalikda ishlaydi. Bu electron pochta xabarlarining saqlanishi uchun foydalaniladi.
Pochta manzili User nomi, Host nomi, unchalik muhim bo’lmagan DisplayName nomlaridan iborat bo’ladi. DisplayName o’zida belgilar, agar kodlashtirilmagan bo’lsa, ASCII naborida chiqmaydi.
MailAddress sinfi elektron pochta manzillarining quyidagi formatlarini o’zida jamlagan:
-user@host- oddiy format manzili. Agar DisplayName e’lon qilinmagan bo’lsa, shu formatdan foydalaniladi.
-DisplayName-standart format bo’lib, qavs ichida "display name" so’zi yoziladi. Agar DisplayName e’lon qilingan bo’lsa, shu format yaratiladi.
-User nomi atrofida burchak to’plam qo’shiladi, agar Host"display name" user@host yoqilmagan bo’lsa.
- display name uchun DisplayName qavs ichiga olinadi, agar ular yoqilmagan bo’lsa.
-Yunikod belgisi DisplayName ni qo’llab quvvatlaydi(поддерживаются).
-User moni qavs ichida, masalan, "user name"@host.
-foydalanuvchining davomiy ba yakuniy nuqtalarda e’lon qilinishi: user...name..@host.
-kvadrat to’plamlarda domenlar literali, masalan, .
- (Примечания) fikr yuborilishdan oldin o’chirib yuboriladi: (comment)"display name"(comment)<(comment)user(comment)@(comment)domain(comment)>(comment).
Agar foydalanuvchi nomi qavs ichida bo’lsa, butun matn qatordan boshlab manzilgacha DisplayName ning qismi hisoblanadi. Tahlilning yoqilishi:masalan:( tahlil qilinmaydi) qatnashchi nomi(tahlil qilinmaydi)qavssiz(tahlil qilinmaydi) < user@host >
Quyidagi misolda jo’natiluvchi elektron pochta xabarlari SmtpClient, MailAddress va MailMessage sinflari yordamida yaratiladi:
public static void CreateCopyMessage(string server)
{
MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller");
MailAddress to = new MailAddress("jane@contoso.com", "Jane Clayton");
MailMessage message = new MailMessage(from, to);
// message.Subject = "Using the SmtpClient class.";
message.Subject = "Using the SmtpClient class.";
message.0+-
8*Body = @"Using this feature, you can send an e-mail message from an application very easily.";
// Add a carbon copy recipient.
MailAddress copy = new MailAddress("Notification_List@contoso.com");
message.CC.Add(copy);
SmtpClient client = new SmtpClient(server);
// Include credentials if the server requires them.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
Console.WriteLine("Sending an e-mail message to {0} by using the SMTP host {1}.",
to.Address, client.Host);
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateCopyMessage(): {0}",
ex.ToString() );
}
}
Local mashinada xat yuborish kodi
using (MailMessage mm = new MailMessage("Name ", "to@site.com")){
mm.Subject = "Mail Subject";
mm.Body = "Mail Body";
mm.IsBodyHtml = false;
using (SmtpClient sc = new SmtpClient("127.0.0.1")){//Здесь должен быть адрес почтового сервера и порт, если необходимо
sc.Send(mm);
}
}
|
|
|
SMTP-сервер: smtp.gmail.com
Порт: 587
|
|
Gmail xizmati yordamida xat yuborish kodi:
using (MailMessage mm = new MailMessage("Name ", "to@site.com")){
mm.Subject = "Mail Subject";
mm.Body = "Mail Body";
mm.IsBodyHtml = false;
using (SmtpClient sc = new SmtpClient("smtp.gmail.com", 587)){
sc.EnableSsl = true;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.Credentials = new NetworkCredential("from@gmail.com", "GmailPassword");
sc.Send(mm);
}
}
|
|
|
|
Yandex xizmati orqali xat yuborish kodi:
Mail.ru xizmati orqali xat yuborish kodi:
using (MailMessage mm = new MailMessage("Name ", "to@site.com")){
mm.Subject = "Mail Subject";
mm.Body = "Mail Body";
mm.IsBodyHtml = false;
using (SmtpClient sc = new SmtpClient("smtp.mail.ru", 25)){
sc.EnableSsl = true;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.Credentials = new NetworkCredential("from@mail.ru", "MailRuPassword");
sc.Send(mm);
}
}
|
|