WebPages elektron pochta
WebMail yordamchisi — ASP.NET’ning ko‘plab foydali veb-yordamchilaridan (Web Helpers) biri.
WebMail obyekti yordamida veb-sahifadan osongina elektron xatlar yuborishingiz mumkin.
WebMail yordamchisi
WebMail yordamchisi SMTP (Simple Mail transfer Protocol) yordamida veb-ilovadan elektron xat yuborishni osonlashtiradi.
Ssenariy: elektron pochta orqali yordam
Elektron pochtadan foydalanishni namoyish qilish uchun yordam so‘rovi uchun kiritish sahifasini yaratamiz, foydalanuvchiga sahifani boshqa sahifaga yuborish imkonini beramiz va yordam talab qilingan muammo haqida elektron xat jo‘natamiz.
Birinchi: AppStart sahifangizni tahrirlang
Agar ushbu darslikdagi Demo ilovasini yaratgan bo‘lsangiz, sizda quyidagi kontentga ega _AppStart.cshtml nomli sahifa allaqachon mavjud:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}
WebMail yordamchisini ishga tushirish uchun AppStart sahifangizga quyidagi WebMail xususiyatlarini qo‘shing:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "support@example.com";
WebMail.Password = "password-goes-here";
WebMail.From = "john@example.com";
}
Xususiyatlar izohi:
SmtpServer: Elektron xatlarni yuborish uchun ishlatiladigan SMTP serverning nomi.
SmtpPort: Server SMTP tranzaksiyalarini (elektron xatlarni) yuborish uchun foydalanadigan port.
EnableSsl: Agar server SSL (Secure Socket Layer) shifrlashdan foydalanishi kerak bo‘lsa, True.
UserName: Elektron xatni yuborish uchun ishlatiladigan SMTP pochta hisobining nomi.
Password: SMTP pochta hisobining paroli.
From: Jo‘natuvchi (from) manzilida ko‘rinadigan elektron pochta (ko‘pincha UserName bilan bir xil).
Ikkinchi: elektron xat kiritish sahifasini yarating
So‘ngra kiritish sahifasini yarating va uni Email_Input deb nomlang:
Email_Input.cshtml
<!DOCTYPE html>
<html>
<body>
<h1>Request for Assistance</h1>
<form method="post" action="EmailSend.cshtml">
<label>Username:</label>
<input type="text" name="customerEmail" />
<label>Details about the problem:</label>
<textarea name="customerRequest" cols="45" rows="4"></textarea>
<p><input type="submit" value="Submit" /></p>
</form>
</body>
</html>
Kiritish sahifasining vazifasi — ma’lumotlarni yig‘ish, so‘ngra ularni elektron xat sifatida yubora oladigan yangi sahifaga jo‘natish.
Uchinchi: elektron xat yuborish sahifasini yarating
So‘ngra elektron xatni yuborish uchun ishlatiladigan sahifani yarating va uni Email_Send deb nomlang:
Email_Send.cshtml
@{ // Read input
var customerEmail = Request["customerEmail"];
var customerRequest = Request["customerRequest"];
try
{
// Send email
WebMail.Send(to:"someone@example.com", subject: "Help request from - " + customerEmail, body: customerRequest );
}
catch (Exception ex )
{
<text>@ex</text>
}
}
WebMail obyekti ma’lumotnomasi - xususiyatlar
| Xususiyatlar | Tavsif |
|---|---|
| SmtpServer | Elektron xatlarni yuboradigan SMTP serverning nomi |
| SmtpPort | Server SMTP xatlarini yuborish uchun foydalanadigan port |
| EnableSsl | Agar server SSL shifrlashdan foydalanishi kerak bo‘lsa, True |
| UserName | Elektron xatni yuborish uchun ishlatiladigan SMTP hisobining nomi |
| Password | SMTP hisobining paroli |
| From | Jo‘natuvchi (from) manzilida ko‘rinadigan elektron pochta |
WebMail obyekti ma’lumotnomasi - metodlar
| Metod | Tavsif |
|---|---|
| Send() | Elektron xatni yetkazib berish uchun SMTP serverga yuboradi |
Send() metodi quyidagi parametrlarga ega:
| Parametr | Tip | Tavsif |
|---|---|---|
| to | String | Elektron xat qabul qiluvchilari (nuqtali vergul bilan ajratilgan) |
| subject | String | Mavzu qatori |
| body | String | Xabarning asosiy matni |
Shuningdek, quyidagi ixtiyoriy parametrlarga ega:
| Parametr | Tip | Tavsif |
|---|---|---|
| from | String | Jo‘natuvchining elektron pochtasi |
| cc | String | Nusxa (cc) oluvchilarning elektron pochtalari (nuqtali vergul bilan ajratilgan) |
| filesToAttach | Kolleksiya | Fayl nomlari |
| isBodyHtml | Boolean | Agar xat matni HTML formatida bo‘lsa, True |
| additionalHeaders | Kolleksiya | Qo‘shimcha sarlavhalar (headers) |
Texnik ma’lumotlar
| Nomi | Qiymat |
|---|---|
| Sinf | System.Web.Helpers.WebMail |
| Nomlar fazosi (namespace) | System.Web.Helpers |
| Yig‘ma (assembly) | System.Web.Helpers.dll |
WebMail yordamchisini initsializatsiya qilish
WebMail yordamchisidan foydalanish uchun SMTP serverga kirish imkoniyati kerak. SMTP — elektron pochtaning "chiquvchi" qismi. Agar veb-xostingdan foydalansangiz, SMTP server nomini ehtimol allaqachon bilasiz. Agar korporativ tarmoqda ishlasangiz, nomni IT bo‘limingiz berishi mumkin. Agar uyda ishlayotgan bo‘lsangiz, oddiy elektron pochta provayderingizdan foydalana olishingiz mumkin.
Elektron xat yuborish uchun sizga quyidagilar kerak bo‘ladi:
- SMTP server nomi
- Port raqami (ko‘pincha 25)
- Elektron pochta foydalanuvchi nomi
- Elektron pochta paroli
Saytingizning ildiz papkasida _AppStart.cshtml nomli sahifa yarating (yoki mavjud sahifani tahrirlang).
Fayl ichiga quyidagi kodni joylashtiring:
_AppStart.cshtml
@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "support@example.com";
WebMail.Password = "password";
WebMail.From = "john@example.com"
}
Yuqoridagi kod veb-sayt (ilova) har safar ishga tushganda bajariladi. U WebMail obyektingizga boshlang‘ich qiymatlarni beradi.
Quyidagilarni almashtiring:
smtp.example.com o‘rniga elektron xatlarni yuborish uchun ishlatiladigan SMTP server nomini yozing.
25 o‘rniga server SMTP tranzaksiyalarini (elektron xatlarni) yuborish uchun foydalanadigan port raqamini yozing.
Agar server SSL (Secure Socket Layer) shifrlashdan foydalanishi kerak bo‘lsa, false o‘rniga true yozing.
support@example.com o‘rniga elektron xatlarni yuborish uchun ishlatiladigan SMTP pochta hisobining nomini yozing.
password o‘rniga SMTP pochta hisobining parolini yozing.
john@example o‘rniga jo‘natuvchi (from) manzilida ko‘rinadigan elektron pochtani yozing.
WebMail obyektini AppStart faylida initsializatsiya qilish shart emas, lekin WebMail.Send() metodini chaqirishdan oldin bu xususiyatlarni o‘rnatishingiz kerak.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
