کار با ایمیل ارسال برنامه ای ایمیل با استفاده از سرویس های مختلف ارسال پیام به ایمیل c

فرمانده کشتی اکتبر 14, 2013 در 07:29 ب.ظ

با استفاده از برنامه ایمیل ارسال کنید خدمات مختلف

  • .خالص،

خیلی وقت ها باید با ارسال سر و کار داشته باشید ایمیل هااز کد برنامه برای مثال لازم نیست راه دور بروید.

این مقاله یک اشاره است و چیز جدیدی را باز نمی کند، اما قبل از نوشتن آن، من به چیزی مشابه در اینترنت نگاه کردم و نسبتاً متعجب شدم که تقریباً در همه جا یا یک راه حل غیر کاربردی یا قدیمی ارائه می دهند یا به سادگی بی سواد نوشته شده است.

اولین کاری که نباید با این مثال ها انجام داد استفاده از System.Web.Mail است که مدت هاست منسوخ شده است و با شروع استودیو ویژوالکتابخانه 2010 System.Web حتی بدون دانستن مسیر کامل به DLL مربوطه اضافه نمی شود.
در عوض، پیشنهاد می شود از کتابخانه System.Net استفاده کنید.
با استفاده از System.Net؛ با استفاده از System.Net.Mail.
بنابراین، ساده ترین، مهم ترین و اغلب مورد استفاده، ارسال نامه ای از طرف شما است سرور پست الکترونیکیکه کلاینت SMTP روی آن پیکربندی شده است. همانطور که می دانید، سرور می تواند سروری باشد که برنامه در آن اجرا می شود یا یک سرور از راه دور که حق ارسال نامه بدون مجوز اضافی را دارید.

کد نمونه برای ارسال نامه از یک ماشین محلی:
", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false; با استفاده از (SmtpClient sc = new SmtpClient (" 127.0.0.1")) (// آدرس باید باشد در اینجا سرور ایمیل و پورت در صورت نیاز sc.Send (mm))

استفاده كردن خدمات پستیمانند Gmail، Yandex، Mail.ru و غیره. همه چیز یکسان است، فقط پارامترهای دارای مجوز اضافه می شوند.

سرور SMTP: smtp.gmail.com
بندر: 587
با استفاده از (MailMessage mm = New MailMessage («Name ", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false; با استفاده از (SmtpClient sc = new SmtpClient ("smtp.gmail.com"، 587)) (sc. EnableSsl = درست؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = نادرست؛ sc.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"," GmailPassword "); sc.Send (mm);))

سرور SMTP: smtp.yandex.ru
بندر: 25
با استفاده از (MailMessage mm = New MailMessage («Name ", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false; با استفاده از (SmtpClient sc = new SmtpClient ("smtp.yandex.ru"، 25)) (sc. EnableSsl = درست؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = نادرست؛ sc.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"," YandexPassword "); sc.Send (mm);))

سرور SMTP: smtp.mail.ru
بندر: 25
با استفاده از (MailMessage mm = New MailMessage («Name ", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false؛ با استفاده از (SmtpClient sc = new SmtpClient ("smtp.mail.ru"، 25)) (sc. EnableSsl = درست؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = نادرست؛ sc.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"" MailRuPassword "); sc.Send (mm);))
اگر تو داری صندوق پستیدر سرویس 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 است، تحت این نام است که هر چیزی که کاربر در این قسمت وارد کرده است، منتقل می شود. پارامتر placeholder نشان می دهد که در این فیلد چه چیزی در قالب توضیح نوشته خواهد شد.

خط بعدی:

در اینجا تقریباً همه چیز یکسان است، اما نام فیلد ایمیل است و توضیحات نشان می دهد که کاربر باید آدرس ایمیل خود را در این فرم وارد کند.

خط بعدی دکمه "ارسال" خواهد بود:

و آخرین خط در فرم تگ خواهد بود

حالا بیایید همه را کنار هم بگذاریم.





حالا فیلدها را به شکل اجباری می کنیم. ما کد زیر را داریم:





فایلی ایجاد کنید که داده ها را از فرم HTML بپذیرد

این فایلی با نام send.php خواهد بود

در فایل، در مرحله اول، باید داده ها را از آرایه پست بپذیرید. برای این کار دو متغیر ایجاد می کنیم:

$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];

قبل از نام متغیرهای PHP یک علامت $ و یک نقطه ویرگول در انتهای هر خط قرار می گیرد. $ _POST آرایه ای است که داده های فرم به آن ارسال می شود. در فرم html، روش ارسال به صورت روش = "پست" مشخص شده است. بنابراین، دو متغیر از آن گرفته شده است فرم های html... برای محافظت از سایت خود، باید این متغیرها را از چندین فیلتر عبور دهید - توابع php.

تابع اول تمام کاراکترهایی را که کاربر سعی می کند به فرم اضافه کند تبدیل می کند:

در این حالت متغیرهای جدیدی در php ایجاد نمی شوند بلکه از متغیرهای موجود استفاده می شود. کاری که فیلتر انجام خواهد داد تبدیل کاراکتر است.<" в "<". Также он поступить с другими символами, встречающимися в html коде.

در صورتی که کاربر سعی کند آن را به فرم اضافه کند، تابع دوم آدرس اینترنتی را رمزگشایی می کند.

$ fio = urldcode ($ fio);
$ email = urldcode ($ email);

در تابع سوم، در صورت وجود، فاصله های ابتدا و انتهای رشته را حذف می کنیم:

$ fio = trim ($ fio);
$ email = trim ($ email);

توابع دیگری نیز برای فیلتر کردن متغیرهای php وجود دارد. استفاده از آنها بستگی به این دارد که چقدر می ترسید یک مهاجم سعی کند کدی را به این فرم ارسال داده به ایمیل html اضافه کند.

اعتبار سنجی داده های ارسال شده از فرم HTML به فایل PHP

برای بررسی اینکه آیا این کد کار می کند یا نه، آیا داده ها منتقل می شوند یا خیر، می توانید به سادگی با استفاده از تابع echo آن را روی صفحه نمایش دهید:

اکو $ fio;
پژواک"
";
echo $ email;

خط دوم در اینجا برای تقسیم خروجی متغیرهای php به خطوط مختلف است.

ارسال داده های دریافتی از فرم HTML به ایمیل با استفاده از PHP

برای ارسال داده به نامه، باید از تابع mail در PHP استفاده کنید.

پست ("به کدام آدرس ارسال شود"، "موضوع نامه"، "پیام (بدنه پیام)"، "از: از کدام ایمیل نامه ارسال می شود \ r \ n")؛

به عنوان مثال، باید داده ها را به آدرس ایمیل مالک یا مدیر سایت ارسال کنید [ایمیل محافظت شده]

خط موضوع ایمیل باید واضح باشد و پیام ایمیل باید حاوی مواردی باشد که کاربر در فرم HTML مشخص کرده است.

پست (" [ایمیل محافظت شده]"," برنامه از سایت "," نام کامل: ". $ Fio.". ایمیل: ". $ ایمیل," از: [ایمیل محافظت شده]\ r \ n ");

شما باید یک شرط اضافه کنید که بررسی کند آیا فرم با استفاده از PHP به آدرس ایمیل مشخص شده ارسال شده است یا خیر.

اگر (پست (" [ایمیل محافظت شده]"," سفارش از سایت "," نام کامل: ". $ Fio.". ایمیل: ". $ ایمیل," از: [ایمیل محافظت شده]\ r \ n "))
{
echo "پیام با موفقیت ارسال شد"؛
) دیگر (
}

بنابراین، کد برنامه فایل send.php که داده‌های فرم HTML را به ایمیل ارسال می‌کند، به شکل زیر خواهد بود:

$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldcode ($ fio);
$ email = urldcode ($ email);
$ fio = trim ($ fio);
$ email = trim ($ email);
// echo $ fio;
// پژواک "
";
// echo $ email;
اگر (پست (" [ایمیل محافظت شده]"," برنامه از سایت "," نام کامل: ". $ Fio.". ایمیل: ". $ ایمیل," از: [ایمیل محافظت شده]\ r \ n "))
(پژواک "پیام با موفقیت ارسال شد"؛
) دیگر (
echo "خطاهایی در هنگام ارسال پیام رخ داده است"؛
}?>

سه خط برای بررسی اینکه آیا داده های ارسال شده به فایل نظر داده شده است یا خیر. در صورت لزوم، می توانید آنها را حذف کنید، زیرا آنها فقط برای اشکال زدایی مورد نیاز بودند.

قرار دادن کدهای HTML و PHP برای ارسال فرم در یک فایل

در نظرات این مقاله، بسیاری از مردم این سوال را مطرح می‌کنند که چگونه می‌توان هم فرم HTML و هم کد PHP را برای ارسال داده به نامه در یک فایل، نه دو فایل، ساخت.

برای پیاده سازی چنین کاری، باید کد HTML فرم را در فایل send.php قرار دهید و شرطی را اضافه کنید که وجود متغیرها در آرایه POST را بررسی کند (این آرایه از فرم ارسال می شود). یعنی اگر متغیرهای آرایه وجود نداشته باشند، باید فرم را به کاربر نشان دهید. در غیر این صورت، باید داده ها را از آرایه بپذیرید و برای مخاطب ارسال کنید.

بیایید نحوه تغییر کد PHP در فایل send.php را ببینیم:



فرم درخواست از سایت


// بررسی کنید که آیا متغیرها در آرایه POST وجود دارند یا خیر
if (! isset ($ _ POST ["fio"]) و! isset ($ _ POST ["email"])) (
?>





) دیگر (
// فرم را نشان می دهد
$ fio = $ _POST ["fio"];
$ email = $ _POST ["ایمیل"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldcode ($ fio);
$ email = urldcode ($ email);
$ fio = trim ($ fio);
$ email = trim ($ email);
اگر (پست (" [ایمیل محافظت شده]"," برنامه از سایت "," نام کامل: ". $ Fio.". ایمیل: ". $ ایمیل," از: [ایمیل محافظت شده]\ r \ n ")) (
echo "پیام با موفقیت ارسال شد"؛
) دیگر (
echo "خطاهایی در ارسال پیام وجود داشت"؛
}
}
?>

وجود یک متغیر در آرایه POST را با استفاده از تابع isset () PHP بررسی می کنیم. علامت تعجب قبل از این تابع در یک شرط به معنای نفی است. یعنی اگر متغیر وجود نداشته باشد، باید فرم خود را نشان دهیم. اگر علامت تعجب قرار نداده بودم، این شرط به معنای واقعی کلمه بود - "اگر وجود دارد، فرم را نشان دهید." و این در مورد ما اشتباه است. طبیعتاً می توانید نام آن را به index.php تغییر دهید. اگر نام فایل را تغییر دادید، فراموش نکنید که نام فایل و در خط را تغییر دهید

... فرم باید به همان صفحه پیوند داشته باشد، برای مثال index.php. عنوان صفحه را به کد اضافه کردم.

خطاهای رایجی که هنگام ارسال فرم PHP از یک سایت رخ می دهد

اولین، احتمالا رایج ترین اشتباه، زمانی است که یک صفحه سفید خالی و بدون پیام می بینید. یعنی شما در کد صفحه اشتباه کرده اید. شما باید نمایش تمام خطاها را در PHP فعال کنید و سپس خواهید دید که خطا در کجا ایجاد شده است. به کد خود اضافه کنید:

ini_set ("display_errors"، "On");
error_reporting ("E_ALL")؛

فایل send.php فقط باید روی سرور اجرا شود، در غیر این صورت کد به سادگی کار نخواهد کرد. مطلوب است که این یک سرور محلی نباشد، زیرا همیشه برای ارسال داده ها به یک سرور پست الکترونیکی خارجی پیکربندی نشده است. اگر کد را در سمت غیر سرور اجرا کنید، کد PHP مستقیماً در صفحه نمایش داده می شود.

بنابراین، برای عملکرد صحیح، توصیه می کنم فایل send.php را در سایت میزبان قرار دهید. در آنجا، به عنوان یک قاعده، همه چیز از قبل پیکربندی شده است.

یکی دیگر از اشتباهات رایج زمانی است که اعلان "پیام با موفقیت ارسال شد" ظاهر می شود و نامه از طریق پست نمی رسد. در این مورد، باید خط را به دقت بررسی کنید:

اگر (پست (" [ایمیل محافظت شده]"," سفارش از سایت "," نام کامل: ". $ Fio.". ایمیل: ". $ ایمیل," از: [ایمیل محافظت شده]\ r \ n "))

بجای [ایمیل محافظت شده] باید یک آدرس ایمیل وجود داشته باشد که می خواهید نامه را به آن بفرستید و به جای آن[ایمیل محافظت شده] باید یک ایمیل موجود از این سایت وجود داشته باشد. به عنوان مثال، برای یک سایت، سایت خواهد بود ... فقط در این صورت نامه ای با داده های فرم ارسال خواهد شد.

آخرین به روز رسانی: 31.10.2015

برای ارسال نامه در اینترنت، از پروتکل انتقال نامه ساده (SMTP) استفاده می شود. این پروتکل نحوه ارتباط سرورهای پست الکترونیکی را در هنگام ارسال ایمیل مشخص می کند.

کلاس SmtpClient از فضای نام System.Net.Mail برای کار با پروتکل SMTP و ارسال ایمیل در NET طراحی شده است.

این کلاس تعدادی ویژگی را تعریف می کند که به شما امکان می دهد ارسال را سفارشی کنید:

    میزبان: smtp-سروری که از آن نامه ارسال می شود. به عنوان مثال، smtp.yandex.ru

    پورت: پورتی که توسط سرور smp استفاده می شود. اگر مشخص نشده باشد، پورت 25 به طور پیش فرض استفاده می شود.

    اعتبار: اعتبار فرستنده

    EnableSsl: نشان می دهد که آیا SSL هنگام ارسال استفاده خواهد شد یا خیر

کلاس کلید دیگری که هنگام ارسال استفاده می شود، MailMessage است. این کلاس نشان دهنده پیام در حال ارسال است. از جمله خواص آن می توان به موارد زیر اشاره کرد:

    پیوست ها: شامل تمام پیوست های نامه است

    متن: مستقیماً متن نامه

    از: آدرس فرستنده. یک شی MailAddress را نشان می دهد

    به: آدرس گیرنده همچنین یک شی MailAddress را نشان می دهد

    موضوع: موضوع ایمیل را مشخص می کند

    IsBodyHtml: نشان می دهد که آیا ایمیل محتوایی با کد html را نشان می دهد یا خیر

بیایید از این کلاس ها استفاده کنیم و نامه را ارسال کنیم:

استفاده از سیستم؛ با استفاده از System.Net؛ با استفاده از System.IO؛ با استفاده از System.Threading.Tasks. با استفاده از System.Net.Mail. فضای نام NetConsoleApp (برنامه کلاس (استاتیک خالی اصلی (رشته آرگ) (// فرستنده - تنظیم آدرس و نام نمایش داده شده در حرف MailAddress from = آدرس پست جدید (" [ایمیل محافظت شده]"," Tom "); // که ما MailAddress را به = آدرس پست جدید (" [ایمیل محافظت شده]"); // ایجاد یک شی پیام MailMessage m = پیام نامه جدید (از، به); // موضوع پیام m.Subject =" Test "; // متن پیام m.Body ="

نامه آزمایشی برای مشتری smtp

"؛ // نامه نشان دهنده کد html m.IsBodyHtml = true است؛ // آدرس سرور smtp و پورتی که از آن نامه را ارسال خواهیم کرد SmtpClient smtp = SmtpClient جدید ("smtp.gmail.com", 587) ؛ // ورود و رمز عبور smtp.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"," mypassword "); smtp.EnableSsl = true؛ smtp.Send (m)؛ Console.Read ();)))

برای ارسال از متد Send () استفاده می شود که یک شی MailMessage ارسال می شود.

ما همچنین می توانیم از نسخه ارسال ناهمزمان با استفاده از روش SendMailAsync استفاده کنیم:

استفاده از سیستم؛ با استفاده از System.Net؛ با استفاده از System.IO؛ با استفاده از System.Threading.Tasks. با استفاده از System.Net.Mail. فضای نام NetConsoleApp (برنامه کلاس (اصلی خالی استاتیک (ارگ‌های رشته) (SendEmailAsync (). GetAwaiter (؛ Console.Read () [ایمیل محافظت شده]"," Tom "); MailAddress to = آدرس پست جدید (" [ایمیل محافظت شده]"); 587)؛ smtp.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"," mypassword "); smtp.EnableSsl = true؛ منتظر smtp.SendMailAsync (m)؛ Console.WriteLine (" نامه ارسال شد")؛)))

افزودن پیوست ها

می توانیم با استفاده از ویژگی Attachments به نامه پیوست ها را ضمیمه کنیم. هر پیوست نشان دهنده یک شی System.Net.Mail.Attachment است:

MailAddress from = آدرس پست جدید (" [ایمیل محافظت شده]"," Tom "); MailAddress to = آدرس پست جدید (" [ایمیل محافظت شده] MailMessage m = MailMessage جدید (از، به)؛ m.Attachments.Add (پیوست جدید ("D: //temlog.txt"));

ارسال پیام به ایمیل در Visual Studio 2013 C ++


به نظر می رسد، چرا چرخ را دوباره اختراع کنیم؟ برنامه های زیادی وجود دارند که می توانند به ایمیل ایمیل ارسال کنند، چه رایگان و چه پولی. در این برنامه ها می توانید نامه ها را نه به یک نفر، بلکه برای بسیاری از گیرندگان همزمان ارسال کنید. با این حال، با این وجود، افزودن گیرندگان به صورت دستی انجام می شود، به خصوص اگر بیش از ده ها نفر از آنها وجود داشته باشد، رانندگی در آدرس های آنها کار سختی است. اگر نیاز به ارسال صدها ایمیل به طور منظم داشته باشید، چه؟ و من در مورد هرزنامه صحبت نمی کنم، اما منظورم نامه های کاملا قانونی است؟

در این مورد، یک برنامه ویژه می تواند به کمک بیاید. در این مقاله، چنین برنامه کاملی وجود نخواهد داشت، بلکه یک برنامه کوچک وجود خواهد داشت که به سادگی یک نامه را به یک آدرس ارسال می کند. در این مورد، مجوز از طریق smpt انجام می شود، یعنی نامه نه از هیچ کجا، بلکه از یک صندوق پستی کاملا واقعی ارسال می شود. مثال از نامه mail.ru استفاده می کند.

بنابراین، این متن برنامه است.

#include "stdafx.h" #using با استفاده از سیستم فضای نام. با استفاده از فضای نام سیستم :: Net; با استفاده از فضای نام سیستم :: Net :: Mail; با استفاده از فضای نام سیستم :: Net :: Mime; با استفاده از فضای نام سیستم :: Threading; با استفاده از فضای نام سیستم :: ComponentModel; int main () (SmtpClient ^ Smtp = gcnew SmtpClient ("smtp.mail.ru"، 25)؛ Smtp-> Credentials = gcnew NetworkCredential ("[email protected]"، "your_password")؛ Smtp-> EnableSsl = ؛ MailMessage ^ Message = gcnew MailMessage (); Message-> From = gcnew MailAddress ("[email protected]"); Message-> To-> Add (gcnew MailAddress ("[email protected]"))؛ Message- > موضوع = "عنوان"؛ پیام-> بدن = "پیام"؛ Smtp-> ارسال (پیام)؛) لازم به ذکر است که چه شرایطی باید رعایت شود: یک پروژه در ویژوال استودیو 2013 نه تنها برای C + ایجاد شده است. +، همچنین باید کنسول باشد، از محیط CLR پشتیبانی کند. بیایید نگاهی دقیق‌تر بیندازیم که چه اتفاقی می‌افتد و در کدام خط در این برنامه C ++ پیامی به صندوق پست الکترونیکی انتخاب شده ارسال می‌کند.

از خطوط 1 تا 8، فایل های هدر و فضاهای نام متصل می شوند. خط 13 سرور smpt را مقداردهی اولیه می کند. Yandex و Google به ترتیب از خود استفاده می کنند: smtp.yandex.ru و smtp.google.ru. عدد 25 در این خط پورت است. در صورتی که ارائه دهنده شما این پورت را مسدود کرده یا امکان اتصال وجود ندارد، می توانید این گزینه های 465 یا 587 را امتحان کنید. در خط 14 باید صندوق پست الکترونیکی خود (که نامه از آنجا ارسال می شود) و رمز عبور این جعبه

به خط 15 توجه ویژه ای داشته باشید - این یکی پروتکل امن ssl را متصل می کند. این برای Yandex و Mail اجباری است. خط 17 یک پیام ایجاد می کند. در 18 - آدرس برگشت؛ در 19 - آدرس گیرنده؛ 20 - سرفصل نامه; 21 - پیام; در خط 22 ارسال انجام می شود. اگر پس از شروع برنامه هیچ خطایی ظاهر نشد، هیچ اتفاقی نمی افتد، پس همه چیز خوب است - صندوق پستی گیرنده را بررسی کنید.

اگر حداقل مهارت های برنامه نویسی کمی دارید، تکمیل بقیه کارها خیلی سریع خواهد بود. لازم است یک پنجره، یک فرم، در قالب چندین فیلد ورودی ایجاد کنید، برنامه را مجبور کنید لیستی از آدرس ها را از مثلاً یک فایل متنی یا پایگاه داده MS Access بارگیری کند. اگر هنوز کاملاً برای شما روشن نیست ، در مقالات بعدی در مورد همه چیز با جزئیات بیشتر به شما خواهم گفت.

هر گونه سوال در مورد برنامه های C ++، java، اسکریپت ها در java script و php، ایجاد وب سایت و طرح بندی، می توانید از طریق پست بپرسید. [ایمیل محافظت شده]یا اسکایپ up777up2 را بزنید. با هزینه ای بسیار مناسب، خوشحال می شوم به شما کمک کنم.

اضافه

یکی از بازدیدکنندگان وبلاگ سوالی پرسید: چگونه یک فایل را در این برنامه ضمیمه کنیم؟ پاسخ ساده است: شما باید چند خط کد به برنامه خود اضافه کنید:

رشته ^ att = L "att.xls"; پیوست ^ dan = gcnew پیوست (att, MediaTypeNames :: Application :: Octet); Message-> Attachments-> Add (dan); در خط اول فایل ضمیمه شده را تعریف می کنیم، در خط دوم داده ها را تعریف می کنیم و دستور عدم تفسیر آن را می دهیم (هدر Content-Type پروتکل MIME) و در خط سوم آن را به پیام اضافه می کنیم. همین.

فرمانده کشتی اکتبر 14, 2013 در 07:29 ب.ظ

ارسال برنامه ای ایمیل با استفاده از سرویس های مختلف

اغلب اوقات شما باید با ارسال ایمیل از کد برنامه سر و کار داشته باشید. برای مثال لازم نیست راه دور بروید.

این مقاله یک اشاره است و چیز جدیدی را باز نمی کند، اما قبل از نوشتن آن، من به چیزی مشابه در اینترنت نگاه کردم و نسبتاً متعجب شدم که تقریباً در همه جا یا یک راه حل غیر کاربردی یا قدیمی ارائه می دهند یا به سادگی بی سواد نوشته شده است.

اولین کاری که نباید با این مثال ها انجام دهید استفاده از System.Web.Mail است که مدت هاست منسوخ شده است و از Visual Studio 2010، کتابخانه System.Web حتی بدون دانستن مسیر کامل به مسیر مربوطه اضافه نشده است. DLL.
در عوض، پیشنهاد می شود از کتابخانه System.Net استفاده کنید.
با استفاده از System.Net؛ با استفاده از System.Net.Mail.
بنابراین، ساده ترین چیز، مهم ترین و اغلب مورد استفاده، ارسال نامه ای از سرور پست الکترونیکی است که روی آن یک کلاینت SMTP پیکربندی شده است. همانطور که می دانید، سرور می تواند سروری باشد که برنامه در آن اجرا می شود یا یک سرور از راه دور که حق ارسال نامه بدون مجوز اضافی را دارید.

کد نمونه برای ارسال نامه از یک ماشین محلی:
", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false; با استفاده از (SmtpClient sc = new SmtpClient (" 127.0.0.1")) (// آدرس باید باشد در اینجا سرور ایمیل و پورت در صورت نیاز sc.Send (mm))

استفاده از خدمات ایمیل مانند Gmail، Yandex، Mail.ru و غیره. همه چیز یکسان است، فقط پارامترهای دارای مجوز اضافه می شوند.

سرور SMTP: smtp.gmail.com
بندر: 587
با استفاده از (MailMessage mm = New MailMessage («Name ", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false; با استفاده از (SmtpClient sc = new SmtpClient ("smtp.gmail.com"، 587)) (sc. EnableSsl = درست؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = نادرست؛ sc.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"," GmailPassword "); sc.Send (mm);))

سرور SMTP: smtp.yandex.ru
بندر: 25
با استفاده از (MailMessage mm = New MailMessage («Name ", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false; با استفاده از (SmtpClient sc = new SmtpClient ("smtp.yandex.ru"، 25)) (sc. EnableSsl = درست؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = نادرست؛ sc.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"," YandexPassword "); sc.Send (mm);))

سرور SMTP: smtp.mail.ru
بندر: 25
با استفاده از (MailMessage mm = New MailMessage («Name ", "[ایمیل محافظت شده]")) (mm.Subject =" Mail Subject "; mm.Body =" Mail Body "; mm.IsBodyHtml = false؛ با استفاده از (SmtpClient sc = new SmtpClient ("smtp.mail.ru"، 25)) (sc. EnableSsl = درست؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = نادرست؛ sc.Credentials = NetworkCredential جدید (" [ایمیل محافظت شده]"" MailRuPassword "); sc.Send (mm);))
اگر صندوق پستی شما در سرویس mail.ru به inbox.ru، list.ru یا bk.ru ختم شود، آدرس سرور SMTP بر این اساس تغییر می کند (smtp.inbox.ru، smtp.list.ru و smtp.bk.ru ).

همانطور که می بینید، برای استفاده از هر سرویس پست دیگری در برنامه های خود، فقط باید آدرس و پورت سرور SMTP و همچنین قوانین مجوز را پیدا کنید.

همچنین باید به خاطر داشت که تقریباً تمام سرویس‌های ایمیل شخص ثالث محدودیت‌هایی را برای تعداد ایمیل‌های ارسال شده در یک دوره زمانی تعیین می‌کنند.

برچسب ها: ایمیل, ارسال ایمیل, smtp