Имэйл илгээж байна. HTML болон PHP ашиглан шуудан руу өгөгдөл илгээх хамгийн энгийн хэлбэр c# хавсралттай имэйл илгээх

Сайн уу. Миний графомани хөгжиж байгаа тул би өөр нийтлэл нэмэхээр шийдсэн. Нийтлэл нь урьдын адил C # хэл дээрх жишээнүүдийн дагуу байх болно, гэхдээ илүү их эсвэл бага чадвартай VB "schnik" VB.NET-ийн доорх бүх кодыг амархан дахин бичих болно.

Магадгүй эхэлцгээе

Учир нь и-мэйл илгээхБид гурван объектыг ашиглах хэрэгтэй. Мессеж илгээхийн тулд System.Net.Mail.SmtpClient, мессежийг илэрхийлэхийн тулд System.Net.Mail.MailMessage, зөвшөөрөл олгохын тулд System.Net.NetworkCredential.

Үйлчлүүлэгч үүсгэцгээе:

Var client = new SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);

бүтээгчийн лавлагаа:

SmtpClient(string хост, int порт);

MailMessage ангийн жишээг үүсгэцгээе:

Var msg = new MailMessage("from", "to");

Одоо захидлын сэдэв, агуулгыг тохируулъя (Дашрамд хэлэхэд бүх зүйлийг бүтээгч дээр тохируулж болно). Түүнчлэн smtp клиентийн нэвтрэх болон нууц үг. Дараа нь бид үйлчлүүлэгчийн объектын Илгээх аргыг ашиглан имэйл илгээх болно:

Var client = new SmtpClient("smtp.yandex.ru"); var msg = new MailMessage("from", "to"); msg.Subject = "Миний туршилтын зурвас"; msg.Body = "Сайн уу, найз минь! Би зүгээр л хэд хэдэн товшилтоор энэ утгагүй захидлыг танд тэрбум удаа илгээх гайхалтай програм бичсэн гэж төсөөлөөд үз дээ!"; msg.SubjectEncoding = Encoding.UTF8; msg.BodyEncoding = Encoding.UTF8; // тэргүүлэх msg. Priority = MailPriority.High; // html дээр мессежийн хэсэг? msg.IsBodyHtml = худал; client.Credentials = new NetworkCredential("нэвтрэх", "нууц үг"); client.Send(msg);

Тэгээд л болоо. Шаардлагатай бүх мэдээллийг зөв оруулахаа мартуузай.


Сэтгэгдэл()

ruslang02 30

CoolHacker, би энэ кодыг вэб хөтчийн 3-р хэсэгт зориулж чамаас зээлж болох уу?

Coolhacker 770 ruslang02 30

Баярлалаа, би үүнийг цахим шуудангаар линк илгээхэд ашиглах болно
Firefox дээрх шиг

LetSevI 10 ноён Олимпиа 2013 оны 10-р сарын 14-ний 19:29 цагт

Төрөл бүрийн үйлчилгээг ашиглан имэйл илгээх

  • .net,

Маш олон удаа та илгээх асуудалтай тулгардаг имэйлүүд-аас програмын код. Та холоос жишээ хайх шаардлагагүй.

Энэ нийтлэл нь сануулга бөгөөд шинэ зүйл илрээгүй, гэхдээ үүнийг бичихээсээ өмнө би Интернетэд үүнтэй төстэй харагдаж байсан бөгөөд бараг хаа сайгүй тэд ажиллахгүй эсвэл хуучирсан шийдлийг санал болгодог эсвэл зүгээр л бичиг үсэг тайлагдаагүй байдлаар бичсэнд их гайхсан.

Эдгээр жишээн дээр хамгийн түрүүнд хийх ёсгүй зүйл бол удаан хугацааны туршид хуучирсан System.Web.Mail-г ашиглах явдал юм. харааны студи 2010 он. System.Web номын санг мэдэхгүйгээр нэмэх боломжгүй бүрэн замхаргалзах DLL руу.
Харин үүний оронд System.Net номын санг ашиглахыг санал болгож байна.
System.Net ашиглах; System.Net.Mail ашиглах;
Тиймээс, хамгийн энгийн, бас хамгийн чухал бөгөөд байнга хэрэглэгддэг нь таны захидал илгээх явдал юм шуудангийн сервер SMTP клиентийг тохируулсан. Таны ойлгож байгаагаар сервер нь програм ажиллаж байгаа эсвэл нэмэлт зөвшөөрөлгүйгээр захидал илгээх эрхтэй алсын сервер байж болно.

Дотоод машинаас имэйл илгээх жишээ код:
", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглан (SmtpClient sc = new SmtpClient("127.0. мэйл сервер болон шаардлагатай бол порт sc.Send(мм) ); )))

Gmail, Yandex, Mail.ru гэх мэт мэйл үйлчилгээг ашиглах. бүх зүйл адилхан, зөвхөн зөвшөөрөлтэй параметрүүдийг нэмсэн.

SMTP сервер: smtp.gmail.com
Порт: 587
ашиглан (MailMessage мм = шинэ MailMessage("Нэр ", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглах (SmtpClient sc = new SmtpClient("smtp.gmail.com", 587))( sc. EnableSsl = үнэн; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = худал; sc.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "GmailPassword"); sc.Send(мм); ) )

SMTP сервер: smtp.yandex.ru
Порт: 25
ашиглан (MailMessage мм = шинэ MailMessage("Нэр ", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглах (SmtpClient sc = new SmtpClient("smtp.yandex.ru", 25))( sc. EnableSsl = үнэн; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = худал; sc.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "YandexPassword"); sc.Send(мм); ) )

SMTP сервер: smtp.mail.ru
Порт: 25
ашиглан (MailMessage мм = шинэ MailMessage("Нэр ", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглан (SmtpClient sc = new SmtpClient("smtp.mail.ru", 25))( sc. EnableSsl = үнэн; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = худал; sc.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "MailRuPassword"); sc.Send(мм); ) )
Танд байгаа бол Шуудангийн хайрцаг mail.ru үйлчилгээ нь inbox.ru, list.ru эсвэл bk.ru гэсэн хаягаар дуусч, дараа нь SMTP серверийн хаяг (smtp.inbox.ru, smtp.list.ru болон smtp.bk.ru) өөрчлөгдөнө.

Таны харж байгаагаар бусад имэйлийн үйлчилгээг програмдаа ашиглахын тулд та зөвхөн SMTP серверийн хаяг, порт, мөн зөвшөөрлийн дүрмийг олж мэдэх хэрэгтэй.

Бараг бүх гуравдагч талын цахим шуудангийн үйлчилгээ нь тодорхой хугацаанд илгээсэн имэйлийн тоонд хязгаарлалт тавьдаг гэдгийг санах нь зүйтэй.

Шошго: имэйл, имэйл илгээх, smtp

Сайт дээрх хамгийн их эрэлт хэрэгцээтэй функцүүдийн нэг бол өргөдөл эсвэл захиалгын маягт бөгөөд өгөгдлийг сайт эзэмшигчийн шуудангаар илгээдэг. Дүрмээр бол ийм маягтууд нь энгийн бөгөөд өгөгдөл оруулах хоёр буюу гурван талбараас бүрдэнэ. Ийм захиалгын маягтыг хэрхэн үүсгэх вэ? Энэ нь HTML тэмдэглэгээний хэл болон хэлийг ашиглах шаардлагатай болно PHP програмчлал.

HTML тэмдэглэгээний хэл нь өөрөө энгийн бөгөөд та тодорхой хаягуудыг хэрхэн, хаана байрлуулахаа олж мэдэх хэрэгтэй. PHP програмчлалын хэлээр бүх зүйл арай илүү төвөгтэй байдаг.

Программист ийм маягт үүсгэх нь тийм ч хэцүү биш боловч HTML кодлогчийн хувьд зарим үйлдлүүд хэцүү мэт санагдаж магадгүй юм.

HTML илгээх маягт үүсгэж байна

Эхний мөр нь дараагийнх байх болно

Энэ бол маш чухал хэлбэрийн элемент юм. Үүнд бид өгөгдлийг хэрхэн, ямар файл руу шилжүүлэхийг зааж өгсөн болно. Энэ тохиолдолд бүх зүйл POST аргаар send.php файл руу илгээгдэнэ. Энэ файл дахь програм нь өгөгдлийг хүлээн авах ёстой бөгөөд тэдгээр нь шуудангийн массивт агуулагдах бөгөөд тэдгээрийг заасан имэйл хаяг руу илгээнэ.

Маягт руугаа буцаж орцгооё. Хоёр дахь мөрөнд бүтэн нэрийг оруулах талбар байх болно. Дараах кодтой байна:

Маягтын төрөл нь текст, өөрөөр хэлбэл хэрэглэгч энд гараас текст оруулах эсвэл хуулах боломжтой болно. Name параметр нь маягтын нэрийг агуулна. Энэ тохиолдолд энэ нь fio юм, энэ талбарт хэрэглэгчийн оруулсан бүх зүйл энэ нэрээр дамжих болно. Орлуулагчийн параметр нь энэ талбарт тайлбар болгон юу бичихийг зааж өгдөг.

Дараагийн мөр:

Энд бараг бүх зүйл адилхан боловч талбарын нэрийг цахим шуудангаар зааж өгсөн бөгөөд хэрэглэгч энэ маягт дээр имэйл хаягаа оруулахын тулд тайлбарыг зааж өгсөн болно.

Дараагийн мөр нь илгээх товч байх болно:

Мөн маягтын сүүлчийн мөр нь шошго байх болно

Одоо бүгдийг нь нэгтгэе.





Одоо маягтын талбаруудыг заавал байлгахыг зөвшөөрье. Бидэнд дараах код байна:





HTML маягтаас өгөгдөл хүлээн авах файл үүсгэ

Энэ нь send.php нэртэй файл байх болно

Файлд, эхний шатанд та шуудангийн массиваас өгөгдлийг хүлээн авах хэрэгтэй. Үүнийг хийхийн тулд бид хоёр хувьсагч үүсгэдэг:

$fio = $_POST["fio"];
$email = $_POST["имэйл"];

Php хэл дээрх хувьсагчийн нэрсийн өмнө $ тэмдэг байх ба мөр бүрийн төгсгөлд цэг таслал тавьдаг. $_POST нь маягтын өгөгдлийг дамжуулдаг массив юм. Html хэлбэрт send method="post"-ыг зааж өгсөн болно. Тиймээс хоёр хувьсагчаас авсан html хэлбэрүүд. Сайтаа хамгаалахын тулд та эдгээр хувьсагчдыг хэд хэдэн шүүлтүүрээр дамжуулах хэрэгтэй - php functions.

Эхний функц нь хэрэглэгчийн маягтанд нэмэхийг оролдох бүх тэмдэгтүүдийг хөрвүүлнэ.

Энэ тохиолдолд php-д шинэ хувьсагч үүсгэхгүй, харин одоо байгаа хувьсагчдыг ашигладаг. Шүүлтүүрийн хийх зүйл бол тэмдэгтийг хувиргах явдал юм "<" в "<". Также он поступить с другими символами, встречающимися в html коде.

Хоёрдахь функц нь хэрэглэгч маягт руу нэмэхийг оролдвол URL-г тайлдаг.

$fio = urldecode($fio);
$мэйл = urldecode($имэйл);

Гурав дахь функцийн тусламжтайгаар бид мөрийн эхэн ба төгсгөлд байгаа зайг арилгах болно.

$fio = засах ($fio);
$мэйл = тайрах($имэйл);

Php хувьсагчдыг шүүх боломжтой өөр функцууд байдаг. Тэдгээрийн хэрэглээ нь халдагчид html шуудан руу өгөгдөл илгээх энэ хэлбэрт програмын код нэмэхийг оролдохоос хэр их айж байгаагаас хамаарна.

HTML маягтаас PHP файл руу дамжуулсан өгөгдлийг баталгаажуулна уу

Энэ код ажиллаж байгаа эсэхийг шалгахын тулд өгөгдөл дамжуулагдаж байгаа бол echo функцийг ашиглан дэлгэцэн дээр зүгээр л харуулах боломжтой.

echo $fio;
цуурай "
";
echo $email;

Энд хоёр дахь мөр нь php хувьсагчийн гаралтыг өөр өөр мөрөнд хуваахад шаардлагатай.

Хүлээн авсан өгөгдлийг HTML маягтаас PHP ашиглан шуудан руу илгээх

Мэйл рүү өгөгдөл илгээхийн тулд та PHP дахь шуудангийн функцийг ашиглах хэрэгтэй.

mail("ямар хаяг руу илгээх вэ", "захидлын сэдэв", "Мессеж (захидлын хэсэг)","Хэнээс: захидал аль имэйлээс илгээгддэг \r\n");

Жишээлбэл, та сайтын эзэмшигч эсвэл менежерийн имэйл рүү өгөгдөл илгээх хэрэгтэй [имэйлээр хамгаалагдсан]

Имэйлийн сэдэв нь тодорхой байх ёстой бөгөөд имэйлийн мессеж нь HTML маягт дээр хэрэглэгчийн заасан зүйлийг агуулсан байх ёстой.

шуудан(" [имэйлээр хамгаалагдсан]", "Сайтын програм", "Нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n");

Та маягтыг заасан имэйл хаяг руу PHP ашиглан илгээсэн эсэхийг шалгах нөхцөлийг нэмэх шаардлагатай.

хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтын захиалга", "Нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))
{
echo "мессеж амжилттай илгээгдсэн";
) өөр (
}

Тиймээс HTML маягтын өгөгдлийг шуудан руу илгээх send.php файлын програмын код дараах байдалтай байна.

$fio = $_POST["fio"];
$email = $_POST["имэйл"];
$fio = htmlspecialchars($fio);
$мэйл = htmlspecialchars($имэйл);
$fio = urldecode($fio);
$мэйл = urldecode($имэйл);
$fio = засах ($fio);
$мэйл = тайрах($имэйл);
//echo $fio;
// цуурай "
";
//echo $email;
хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтын програм", "Нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))
("мессеж амжилттай илгээгдсэн" цуурай;
) өөр (
echo "мессеж илгээх явцад алдаа гарсан";
}?>

Файл руу өгөгдөл дамжуулагдаж байгаа эсэхийг шалгах гурван мөрөнд тайлбар хийсэн. Шаардлагатай бол тэдгээрийг арилгах боломжтой, учир нь тэдгээр нь зөвхөн дибаг хийхэд шаардлагатай байсан.

HTML болон PHP маягтын илгээх кодыг нэг файлд байрлуул

Энэ нийтлэлд бичсэн сэтгэгдэлд олон хүн HTML маягт болон шуудан руу өгөгдөл илгээх PHP кодыг хоёр биш, нэг файлд хэрхэн оруулах талаар асуудаг.

Энэ ажлыг хэрэгжүүлэхийн тулд та формын HTML кодыг send.php файлд байрлуулж, POST массив дахь хувьсагч байгаа эсэхийг шалгах нөхцөлийг нэмэх хэрэгтэй (энэ массивыг маягтаас дамжуулсан). Өөрөөр хэлбэл, массив дахь хувьсагч байхгүй бол та хэрэглэгчдэд маягт харуулах хэрэгтэй. Үгүй бол та массиваас өгөгдлийг авч, хүлээн авагч руу илгээх хэрэгтэй.

send.php файл дахь PHP кодыг хэрхэн өөрчлөхийг харцгаая.



Вэб сайтын өргөдлийн маягт


//POST массивт хувьсагч байгаа эсэхийг шалгана
if(!isset($_POST["fio"]) ба !isset($_POST["имэйл"]))(
?>





) өөр (
//маягтыг харуулах
$fio = $_POST["fio"];
$email = $_POST["имэйл"];
$fio = htmlspecialchars($fio);
$мэйл = htmlspecialchars($имэйл);
$fio = urldecode($fio);
$мэйл = urldecode($имэйл);
$fio = засах ($fio);
$мэйл = тайрах($имэйл);
хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтын програм", "Нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))(
echo "Зурвас амжилттай илгээгдсэн";
) өөр (
echo "Зурвас илгээх явцад алдаа гарлаа";
}
}
?>



Бид POST массив дахь хувьсагч байгаа эсэхийг PHP isset() функцээр шалгадаг. Нөхцөл дэх энэ функцийн өмнөх анхаарлын тэмдэг нь үгүйсгэх гэсэн үг юм. Өөрөөр хэлбэл, хэрэв хувьсагч байхгүй бол бид хэлбэрээ харуулах хэрэгтэй. Хэрэв би анхаарлын тэмдэг тавиагүй бол нөхцөл нь шууд утгаараа "хэрэв байгаа бол маягтыг харуул" гэсэн утгатай болно. Мөн энэ нь манай тохиолдолд буруу юм. Мэдээжийн хэрэг, та үүнийг index.php болгон өөрчилж болно. Хэрэв та файлын нэрийг өөрчлөх юм бол файлын нэр болон мөрөнд нэрийг нь өөрчлөхөө бүү мартаарай

. Маягт нь index.php гэх мэт ижил хуудастай холбогдсон байх ёстой. Би кодод хуудасны гарчгийг нэмсэн.

Вэбсайтаас PHP маягт оруулахад гардаг нийтлэг алдаа

Эхний, магадгүй хамгийн түгээмэл алдаа бол мессежгүй хоосон цагаан хуудсыг харах явдал юм. Энэ нь та хуудасны кодонд алдаа гаргасан гэсэн үг юм. Та PHP дээрх бүх алдааны дэлгэцийг асаах хэрэгтэй бөгөөд дараа нь хаана алдаа гарсныг харах болно. Кодод нэмэх:

ini_set("алдааны_дэлгэц","Асаалттай");
алдааны_тайлагнах("E_ALL");

send.php файлыг зөвхөн сервер дээр ажиллуулах ёстой, эс тэгвээс код ажиллахгүй. Энэ нь локал сервер биш байх нь зүйтэй юм, учир нь энэ нь гадаад захидлын сервер рүү өгөгдөл илгээхээр үргэлж тохируулагдаагүй байдаг. Хэрэв та кодыг серверээс өөр сервер дээр ажиллуулбал PHP кодыг шууд хуудаснаас харах болно.

Тиймээс зөв ажиллахын тулд сайтын хостинг дээр send.php файлыг байрлуулахыг зөвлөж байна. Тэнд, дүрмээр бол бүх зүйл аль хэдийн тохируулагдсан байдаг.

Өөр нэг нийтлэг алдаа бол "Зурвас амжилттай илгээгдсэн" гэсэн мэдэгдэл гарч ирэх боловч захидал шуудангаар ирэхгүй байх явдал юм. Энэ тохиолдолд та шугамыг сайтар шалгаж үзэх хэрэгтэй.

хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтын захиалга", "Нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))

Оронд нь [имэйлээр хамгаалагдсан] захидал илгээхийг хүссэн и-мэйл хаяг байх ёстой, гэхдээ оронд нь[имэйлээр хамгаалагдсан] l.ruЭнэ сайтын одоо байгаа имэйл байх ёстой. Жишээлбэл, сайтын сайтын хувьд энэ нь байх болно . Зөвхөн энэ тохиолдолд маягтын өгөгдөл бүхий захидал илгээгдэх болно.

Сүүлийн шинэчлэлт: 2015.10.31

SMTP (Simple Mail Transfer Protocol) нь интернетээр шуудан илгээхэд ашиглагддаг. Энэ протокол нь имэйл илгээх үед шуудангийн серверүүд хэрхэн ажиллахыг тодорхойлдог.

SMTP протоколтой ажиллах, .NET дээр и-мэйл илгээхийн тулд System.Net.Mail нэрийн орон зайн SmtpClient анги зориулагдсан болно.

Энэ анги нь илгээлтийг өөрчлөх боломжийг олгодог хэд хэдэн шинж чанарыг тодорхойлдог:

    Хост: шуудан илгээгддэг smtp сервер. Жишээлбэл, smtp.yandex.ru

    Порт: smp серверийн ашигладаг порт. Хэрэв заагаагүй бол 25-р портыг анхдагчаар ашигладаг.

    Итгэмжлэл: илгээгчийн баталгаажуулалтын өгөгдөл

    EnableSsl: Илгээх үед SSL протоколыг ашиглах эсэхийг заана

Илгээх үед ашигладаг өөр нэг түлхүүр анги бол MailMessage юм. Энэ анги нь илгээж буй мессежийг илэрхийлдэг. Түүний шинж чанаруудын дунд дараахь зүйлс орно.

    Хавсралт: бүх имэйл хавсралтыг агуулна

    Үндсэн хэсэг: шууд захидлын текст

    Хэнээс: илгээгчийн хаяг. MailAddress объектыг төлөөлдөг

    Хэнд: хүлээн авагчийн хаяг. Мөн MailAddress объектыг илэрхийлнэ

    Гарчиг: имэйлийн сэдвийг тодорхойлно

    IsBodyHtml: Имэйл нь html код бүхий агуулгыг илэрхийлж байгаа эсэхийг заана

Эдгээр ангиудыг ашиглаад имэйл илгээцгээе:

Системийг ашиглах; System.Net ашиглах; System.IO ашиглах; System.Threading.Tasks ашиглах; System.Net.Mail ашиглах; namespace NetConsoleApp ( class Program ( static void Main(string args)) ( // илгээгч - захидалд харагдах хаяг болон нэрийг тохируулах MailAddress from = new MailAddress(" [имэйлээр хамгаалагдсан]", "Том"); // бид хэн рүү MailAddress илгээдэг = шинэ MailAddress(" [имэйлээр хамгаалагдсан]"); // мессежийн объект үүсгэх MailMessage m = шинэ MailMessage(from, to); // захидлын сэдэв m.Subject = "Test"; // мэйл текст m.Body = "

smtp үйлчлүүлэгчийн захидлын тест

"; // үсэг нь html кодыг илэрхийлнэ m.IsBodyHtml = үнэн; // smtp серверийн хаяг ба портоос бид SmtpClient үсгийг илгээх smtp = new SmtpClient("smtp.gmail.com", 587); // нэвтрэх болон нууц үг smtp.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "mypassword"); smtp.EnableSsl = үнэн; smtp.Send(m); Console.Read(); ) ) )

Илгээхийн тулд MailMessage объектыг дамжуулдаг Send() аргыг ашигладаг.

Бид мөн SendMailAsync аргаар илгээх асинхрон хувилбарыг ашиглаж болно:

Системийг ашиглах; System.Net ашиглах; System.IO ашиглах; System.Threading.Tasks ашиглах; System.Net.Mail ашиглах; нэрийн орон зай NetConsoleApp ( анги Програм ( статик хүчингүй Үндсэн(string args) ( SendEmailAsync().GetAwaiter(); Console.Read(); ) хувийн статик асинк хийх даалгавар SendEmailAsync() ( MailAddress from = new MailAddress(" [имэйлээр хамгаалагдсан]", "Том"); MailAddress to = шинэ MailAddress(" [имэйлээр хамгаалагдсан]"); MailMessage m = шинэ MailMessage(from, to); m.Subject = "Test"; m.Body = "Smtp client work test letter 2"; SmtpClient smtp = new SmtpClient("smtp.gmail.com" , 587 ); smtp.Credentials = шинэ NetworkCredentials(" [имэйлээр хамгаалагдсан]", "mypassword"); smtp.EnableSsl = үнэн; хүлээж smtp.SendMailAsync(m); Console.WriteLine("Мэйл илгээсэн"); ) ) )

Хавсралт нэмэх

Бид Хавсралт шинж чанарыг ашиглан имэйлд хавсралт хавсаргаж болно. Хавсралт бүр нь System.Net.Mail.Attachment объектыг төлөөлдөг:

MailAddress from = new MailAddress(" [имэйлээр хамгаалагдсан]", "Том"); MailAddress to = шинэ MailAddress(" [имэйлээр хамгаалагдсан]"); MailMessage m = шинэ MailMessage(from, to); m.Attachments.Add(шинэ Хавсралт("D://temlog.txt"));

Маш олон удаа та програмын кодоос имэйл илгээх асуудалтай тулгардаг. Та холоос жишээ хайх шаардлагагүй.

Энэ нийтлэл нь сануулга бөгөөд шинэ зүйл илрээгүй, гэхдээ үүнийг бичихээсээ өмнө би Интернетэд үүнтэй төстэй харагдаж байсан бөгөөд бараг хаа сайгүй тэд ажиллахгүй эсвэл хуучирсан шийдлийг санал болгодог эсвэл зүгээр л бичиг үсэг тайлагдаагүй байдлаар бичсэнд их гайхсан.

Эдгээр жишээн дээр хамгийн түрүүнд хийх ёсгүй зүйл бол хуучирсан System.Web.Mail-г ашиглах явдал бөгөөд Visual Studio 2010-аас эхлэн та System.Web номын санг нэмэх боломжгүй. холбогдох DLL.
Харин үүний оронд System.Net номын санг ашиглахыг санал болгож байна.
System.Net ашиглах; System.Net.Mail ашиглах;
Тиймээс, хамгийн энгийн, бас хамгийн чухал бөгөөд ихэвчлэн ашиглагддаг зүйл бол SMTP клиентийг тохируулсан имэйл серверээсээ захидал илгээх явдал юм. Таны ойлгож байгаагаар сервер нь програм ажиллаж байгаа эсвэл нэмэлт зөвшөөрөлгүйгээр захидал илгээх эрхтэй алсын сервер байж болно.

Дотоод машинаас имэйл илгээх жишээ код:
", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглан (SmtpClient sc = new SmtpClient("127.0. мэйл сервер болон шаардлагатай бол порт sc.Send(мм) ); )))

Gmail, Yandex, Mail.ru гэх мэт мэйл үйлчилгээг ашиглах. бүх зүйл адилхан, зөвхөн зөвшөөрөлтэй параметрүүдийг нэмсэн.

SMTP сервер: smtp.gmail.com
Порт: 587
ашиглан (MailMessage мм = шинэ MailMessage("Нэр ", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглах (SmtpClient sc = new SmtpClient("smtp.gmail.com", 587))( sc. EnableSsl = үнэн; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = худал; sc.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "GmailPassword"); sc.Send(мм); ) )

SMTP сервер: smtp.yandex.ru
Порт: 25
ашиглан (MailMessage мм = шинэ MailMessage("Нэр ", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглах (SmtpClient sc = new SmtpClient("smtp.yandex.ru", 25))( sc. EnableSsl = үнэн; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = худал; sc.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "YandexPassword"); sc.Send(мм); ) )

SMTP сервер: smtp.mail.ru
Порт: 25
ашиглан (MailMessage мм = шинэ MailMessage("Нэр ", "[имэйлээр хамгаалагдсан]"))( mm.Subject = "Мэйлийн сэдэв"; mm.Body = "Мэйлийн үндсэн хэсэг"; mm.IsBodyHtml = худал; ашиглан (SmtpClient sc = new SmtpClient("smtp.mail.ru", 25))( sc. EnableSsl = үнэн; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = худал; sc.Credentials = шинэ NetworkCredential(" [имэйлээр хамгаалагдсан]", "MailRuPassword"); sc.Send(мм); ) )
Хэрэв mail.ru үйлчилгээ дээрх таны шуудангийн хайрцаг inbox.ru, list.ru эсвэл bk.ru гэсэн хаягаар төгссөн бол SMTP серверийн хаяг зохих ёсоор өөрчлөгдөнө (smtp.inbox.ru, smtp.list.ru болон smtp.bk.ru ).

Таны харж байгаагаар бусад имэйлийн үйлчилгээг програмдаа ашиглахын тулд та зөвхөн SMTP серверийн хаяг, порт, мөн зөвшөөрлийн дүрмийг олж мэдэх хэрэгтэй.

Бараг бүх гуравдагч талын цахим шуудангийн үйлчилгээ нь тодорхой хугацаанд илгээсэн имэйлийн тоонд хязгаарлалт тавьдаг гэдгийг санах нь зүйтэй.

Шошго: имэйл, имэйл илгээх, smtp



Ачааж байна...
Топ