کار با ایمیل ارسال برنامه ای ایمیل با استفاده از سرویس های مختلف ارسال پیام به ایمیل c
با استفاده از برنامه ایمیل ارسال کنید خدمات مختلف
- .خالص،
خیلی وقت ها باید با ارسال سر و کار داشته باشید ایمیل هااز کد برنامه برای مثال لازم نیست راه دور بروید.
این مقاله یک اشاره است و چیز جدیدی را باز نمی کند، اما قبل از نوشتن آن، من به چیزی مشابه در اینترنت نگاه کردم و نسبتاً متعجب شدم که تقریباً در همه جا یا یک راه حل غیر کاربردی یا قدیمی ارائه می دهند یا به سادگی بی سواد نوشته شده است.
اولین کاری که نباید با این مثال ها انجام داد استفاده از System.Web.Mail است که مدت هاست منسوخ شده است و با شروع استودیو ویژوالکتابخانه 2010 System.Web حتی بدون دانستن مسیر کامل به DLL مربوطه اضافه نمی شود.
در عوض، پیشنهاد می شود از کتابخانه System.Net استفاده کنید.
با استفاده از System.Net؛ با استفاده از System.Net.Mail.
بنابراین، ساده ترین، مهم ترین و اغلب مورد استفاده، ارسال نامه ای از طرف شما است سرور پست الکترونیکیکه کلاینت SMTP روی آن پیکربندی شده است. همانطور که می دانید، سرور می تواند سروری باشد که برنامه در آن اجرا می شود یا یک سرور از راه دور که حق ارسال نامه بدون مجوز اضافی را دارید.
کد نمونه برای ارسال نامه از یک ماشین محلی:
استفاده كردن خدمات پستیمانند Gmail، Yandex، Mail.ru و غیره. همه چیز یکسان است، فقط پارامترهای دارای مجوز اضافه می شوند.
سرور SMTP: smtp.gmail.com
بندر: 587
با استفاده از (MailMessage mm = New MailMessage («Name
سرور SMTP: smtp.yandex.ru
بندر: 25
با استفاده از (MailMessage mm = New MailMessage («Name
سرور SMTP: smtp.mail.ru
بندر: 25
با استفاده از (MailMessage mm = New MailMessage («Name
اگر تو داری صندوق پستیدر سرویس 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 ایجاد کنید
خط اول بعدی خواهد بود
حالا بیایید همه را کنار هم بگذاریم.
حالا فیلدها را به شکل اجباری می کنیم. ما کد زیر را داریم:
فایلی ایجاد کنید که داده ها را از فرم 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 تغییر دهید. اگر نام فایل را تغییر دادید، فراموش نکنید که نام فایل و در خط را تغییر دهید