أبسط طريقة لإرسال البيانات إلى البريد باستخدام HTML و PHP. العمل مع البريد الإلكتروني إرسال البيانات إلى البريد ج

أهلا. نظرًا لتقدم الرسم البياني الخاص بي ، قررت إضافة مقال آخر. ستقوم المقالة ، كما هو الحال دائمًا ، بأمثلة في C # ، ولكن سيتم إعادة كتابة schnick أكثر أو أقل مهارة من VB "بسهولة جميع التعليمات البرمجية لـ VB.NET.

لنبدأ ، ربما

ل إرسال البريد الإلكترونينحتاج إلى استخدام ثلاثة أشياء. System.Net.Mail.SmtpClient لإرسال الرسالة ، System.Net.Mail.MailMessage لإرسال الرسالة ، و System.Net.NetworkCredential للحصول على إذن.

لنقم بإنشاء عميل:

عميل Var = SmtpClient جديد ("$ Mail-Server-Address $" ، $ Mail-Server-Port $) ؛

مرجع المُنشئ:

SmtpClient (مضيف سلسلة ، منفذ int) ؛

لنقم بإنشاء مثيل لفئة MailMessage:

Var msg = new MailMessage ("from"، "to")؛

الآن دعنا نحدد موضوع ومحتوى الحرف (بالمناسبة ، يمكن تعيين كل شيء في المنشئ أيضًا). وكذلك اسم المستخدم وكلمة المرور لعميل smtp. ثم نرسل بريدًا إلكترونيًا باستخدام طريقة الإرسال لكائن العميل لدينا:

عميل Var = 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 ؛ // نص الرسالة في لغة تأشير النص الفائق؟ msg.IsBodyHtml = خطأ ، client.Credentials = new NetworkCredential ("تسجيل الدخول" ، "كلمة المرور") ؛ العميل.إرسال (msg) ؛

هذا كل شئ. لا تنس أن تملأ جميع المعلومات المطلوبة بشكل صحيح.


تعليقات ()

30

CoolHacker ، هل يمكنني الحصول على هذا الرمز منك للجزء الثالث من متصفح الويب؟

كولهاكر 770 30

شكرًا لك ، سأستخدمه لإرسال الروابط عبر البريد الإلكتروني
كما هو الحال في FireFox

LetSevI 10

إرسال الرسائل إلى البريد في استوديو مرئي 2013 C ++


يبدو ، لماذا إعادة اختراع العجلة؟ هناك العديد من البرامج التي يمكنها إرسال رسائل البريد الإلكتروني إلى البريد الإلكتروني ، سواء المجانية أو المدفوعة. في هذه البرامج ، يمكنك إرسال رسائل ليس إلى واحد ، ولكن إلى العديد من المستلمين في وقت واحد. ومع ذلك ، تتم إضافة المستلمين يدويًا ، وهي مهمة كئيبة للقيادة في عناوينهم ، خاصةً إذا كان هناك أكثر من عشرة منهم. ماذا لو كنت بحاجة إلى إرسال مئات رسائل البريد الإلكتروني بشكل منتظم؟ وأنا لا أتحدث عن البريد العشوائي ، لكن أعني المراسلات القانونية تمامًا؟

في هذه الحالة ، يمكنك الإنقاذ برنامج خاص... في هذه المقالة ، لن يكون هناك مثل هذا البرنامج بأكمله ، ولكن هناك برنامج صغير يرسل ببساطة حرفًا واحدًا إلى عنوان واحد. في هذه الحالة ، يتم التفويض عبر smpt ، أي أن الرسالة لا يتم إرسالها من أي مكان ، ولكن من صندوق بريد حقيقي تمامًا. يستخدم المثال بريد mail.ru.

إذن ، هذا هو نص البرنامج.

# تضمين "stdafx.h" # استخدام باستخدام نظام مساحة الاسم ؛ باستخدام نظام مساحة الاسم :: نت ؛ باستخدام نظام مساحة الاسم :: 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 = true ؛ MailMessage ^ Message = gcnew MailMessage () ؛ رسالة-> من = gcnew MailAddress ("[email protected]") ؛ رسالة-> إلى-> إضافة (gcnew MailAddress ("المستلمين[email protected]")) ؛ رسالة- > الموضوع = "العنوان" ؛ الرسالة-> النص = "الرسالة" ؛ Smtp-> إرسال (رسالة) ؛) تجدر الإشارة على الفور إلى الشروط التي يجب الوفاء بها: تم إنشاء مشروع في Visual Studio 2013 ليس فقط لـ C + + ، يجب أن تكون وحدة التحكم ، ودعم بيئة CLR. دعنا نلقي نظرة فاحصة على ما يحدث وفي أي سطر في برنامج C ++ هذا الذي يرسل رسالة إلى مربع البريد الإلكتروني المحدد.

من الأسطر الأولى إلى الثامنة ، يتم توصيل ملفات الرأس ومساحات الأسماء. يقوم السطر 13 بتهيئة خادم smpt. يستخدم كل من Yandex و Google موقعهما الخاص: smtp.yandex.ru و smtp.google.ru ، على التوالي. الرقم 25 على هذا الخط هو المنفذ. في حالة قيام الموفر الخاص بك بحظر هذا المنفذ أو عدم إمكانية الاتصال به ، يمكنك تجربة هذين الخيارين 465 أو 587. في السطر 14 ، يجب عليك إدخال صندوق البريد الإلكتروني الخاص بك (الذي سيتم إرسال الرسالة منه) و كلمة المرور لهذا المربع.

انتبه بشكل خاص إلى السطر 15 - هذا السطر يربط بروتوكول آمن ssl. هذا إلزامي لـ Yandex و Mail. السطر 17 ينشئ رسالة ؛ في 18 - عنوان المرسل ؛ في 19 - عنوان المستلم ؛ 20 - رأس الرسالة ؛ 21 - رسالة ؛ في السطر الثاني والعشرين ، يتم الإرسال. إذا لم تظهر أي أخطاء بعد بدء البرنامج ، ولم يحدث شيء ، فكل شيء على ما يرام - تحقق من صندوق بريد المستلم.

إذا كان لديك على الأقل بعض مهارات البرمجة الصغيرة ، فسيكون إنهاء الباقي أمرًا سهلاً. من الضروري إنشاء نافذة أو نموذج في شكل عدة حقول إدخال ، وإجبار البرنامج على تحميل قائمة عناوين من ، على سبيل المثال ، ملف نصي أو قاعدة بيانات MS Access. إذا كان هذا لا يزال غير واضح تمامًا بالنسبة لك ، فسوف أخبرك في المقالات التالية بالمزيد عن كل شيء.

أي أسئلة حول البرامج في C ++ و java والبرامج النصية في java script و php وإنشاء مواقع الويب وتخطيطها ، يمكنك طرحها عن طريق البريد [البريد الإلكتروني محمي]أو اضغط على سكايب up777up2. مقابل رسوم معقولة جدًا ، سأكون سعيدًا بمساعدتك.

إضافة

طرح أحد زوار المدونة سؤالاً: كيف يتم إرفاق ملف في هذا البرنامج؟ الجواب بسيط: تحتاج إلى إضافة بضعة أسطر من التعليمات البرمجية إلى التطبيق الخاص بك:

سلسلة ^ att = L "att.xls" ؛ Attachment ^ dan = gcnew Attachment (att، MediaTypeNames :: Application :: Octet)؛ الرسالة-> المرفقات-> إضافة (dan) ؛ في السطر الأول نحدد الملف المرفق ، وفي السطر الثاني نحدد البيانات ونطلب عدم تفسيرها (رأس نوع المحتوى لبروتوكول MIME) وفي السطر الثالث نضيفه إلى الرسالة. هذا كل شئ.

السيد أوليمبيا 14 أكتوبر 2013 الساعة 07:29 مساءً

إرسال بريد إلكتروني آليًا باستخدام خدمات متنوعة

  • .صافي،

في كثير من الأحيان عليك التعامل مع الإرسال رسائل البريد الإلكترونيمن كود البرنامج. ليس عليك أن تذهب بعيدًا للحصول على أمثلة.

هذا المقال هو تلميح ولا يفتح أي شيء جديد ، ولكن قبل كتابته ، نظرت إلى شيء مشابه على الإنترنت وفوجئت بالأحرى أنه في كل مكان تقريبًا يقدمون إما حلًا لا يعمل أو عفا عليه الزمن ، أو ببساطة مكتوب بشكل أمي.

أول شيء لا يجب عليك فعله في هذه الأمثلة هو استخدام System.Web.Mail ، الذي عفا عليه الزمن منذ فترة طويلة ، ومنذ Visual Studio 2010 ، لم تتم إضافة مكتبة System.Web حتى دون معرفة المسار الكامل إلى المقابل. DLL.
بدلاً من ذلك ، يُقترح استخدام مكتبة System.Net.
باستخدام System.Net ؛ باستخدام System.Net.Mail ؛
لذلك ، أبسط ، هو الأكثر أهمية وغالبًا ما يتم استخدامه هو إرسال رسالة من ملف خادم البريدالذي تم تكوين عميل SMTP عليه. كما تعلم ، يمكن أن يكون الخادم إما هو الخادم الذي يعمل عليه التطبيق ، أو الخادم البعيد ، والذي يحق لك إرسال رسائل بدون إذن إضافي عليه.

نموذج رمز لإرسال رسالة من جهاز محلي:
", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" 127.0.0.1 ")) (// يجب أن يكون العنوان هنا خادم البريد والمنفذ إذا لزم الأمر sc.Send (مم) ؛))

استخدام خدمات بريديةمثل Gmail و Yandex و Mail.ru وما إلى ذلك. كل شيء هو نفسه ، تتم إضافة المعلمات فقط مع الإذن.

خادم SMTP: smtp.gmail.com
المنفذ: 587
باستخدام (MailMessage mm = new MailMessage ("Name ", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.gmail.com "، 587)) (sc. EnableSsl = true ؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network ؛ sc.UseDefaultCredentials = false ؛ sc.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" GmailPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.yandex.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.yandex.ru "، 25)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" YandexPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.mail.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.mail.ru "، 25)) (sc. EnableSsl = true ؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network ؛ sc.UseDefaultCredentials = false ؛ sc.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" MailRuPassword ") ؛ sc.Send (مم) ؛))
اذا كنت تمتلك صندوق بريدعلى خدمة mail.ru تنتهي بـ inbox.ru أو list.ru أو bk.ru ، ثم يتغير عنوان خادم SMTP (smtp.inbox.ru ، smtp.list.ru و smtp.bk.ru) وفقًا لذلك.

كما ترى ، من أجل استخدام أي خدمة بريد أخرى في برامجك ، ما عليك سوى معرفة عنوان ومنفذ خادم SMTP ، بالإضافة إلى قواعد التفويض.

يجب أن نتذكر أيضًا أن جميع الجهات الخارجية تقريبًا خدمات بريديةفرض قيود على عدد رسائل البريد الإلكتروني المرسلة خلال فترة زمنية.

العلامات: بريد إلكتروني ، إرسال رسائل بريد إلكتروني ، بروتوكول smtp

غالبًا ما يتعين عليك التعامل مع إرسال رسائل البريد الإلكتروني من رمز البرنامج. ليس عليك أن تذهب بعيدًا للحصول على أمثلة.

هذا المقال هو تلميح ولا يفتح أي شيء جديد ، ولكن قبل كتابته ، نظرت إلى شيء مشابه على الإنترنت وفوجئت بالأحرى أنه في كل مكان تقريبًا يقدمون إما حلًا لا يعمل أو عفا عليه الزمن ، أو ببساطة مكتوب بشكل أمي.

أول شيء لا يجب عليك فعله في هذه الأمثلة هو استخدام System.Web.Mail ، الذي عفا عليه الزمن منذ فترة طويلة ، ومنذ Visual Studio 2010 ، لم تتم إضافة مكتبة System.Web حتى دون معرفة المسار الكامل إلى المقابل. DLL.
بدلاً من ذلك ، يُقترح استخدام مكتبة System.Net.
باستخدام System.Net ؛ باستخدام System.Net.Mail ؛
لذلك ، أبسط ، هو الأكثر أهمية وغالبًا ما يتم استخدامه - هو إرسال رسالة من خادم البريد الخاص بك ، والذي تم تكوينه باستخدام عميل SMTP. كما تفهم ، يمكن أن يكون الخادم إما هو الخادم الذي يعمل عليه التطبيق ، أو الخادم البعيد ، والذي يحق لك إرسال رسائل بدون إذن إضافي عليه.

نموذج رمز لإرسال رسالة من جهاز محلي:
", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" 127.0.0.1 ")) (// يجب أن يكون العنوان هنا خادم البريد والمنفذ إذا لزم الأمر sc.Send (مم) ؛))

استخدام خدمات البريد الإلكتروني مثل Gmail و Yandex و Mail.ru وما إلى ذلك. كل شيء هو نفسه ، تتم إضافة المعلمات فقط مع الإذن.

خادم SMTP: smtp.gmail.com
المنفذ: 587
باستخدام (MailMessage mm = new MailMessage ("Name ", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.gmail.com "، 587)) (sc. EnableSsl = true ؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network ؛ sc.UseDefaultCredentials = false ؛ sc.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" GmailPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.yandex.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.yandex.ru "، 25)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" YandexPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.mail.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[البريد الإلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.mail.ru "، 25)) (sc. EnableSsl = true ؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network ؛ sc.UseDefaultCredentials = false ؛ sc.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" MailRuPassword ") ؛ sc.Send (مم) ؛))
إذا كان صندوق البريد الخاص بك على خدمة mail.ru ينتهي بـ inbox.ru أو list.ru أو bk.ru ، فإن عنوان خادم SMTP يتغير وفقًا لذلك (smtp.inbox.ru و smtp.list.ru و smtp.bk.ru ).

كما ترى ، من أجل استخدام أي خدمة بريد أخرى في برامجك ، ما عليك سوى معرفة عنوان ومنفذ خادم SMTP ، بالإضافة إلى قواعد التفويض.

يجب أن نتذكر أيضًا أن جميع خدمات البريد الإلكتروني التابعة لجهات خارجية تقريبًا تفرض قيودًا على عدد رسائل البريد الإلكتروني المرسلة خلال فترة زمنية.

العلامات: بريد إلكتروني ، إرسال رسائل بريد إلكتروني ، بروتوكول smtp

آخر تحديث: 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.hreading.Tasks ؛ باستخدام System.Net.Mail ؛ مساحة الاسم NetConsoleApp (فئة البرنامج (ثابت باطل رئيسي (سلسلة args) (// المرسل - قم بتعيين العنوان والاسم المعروض في الحرف MailAddress from = new MailAddress (" [البريد الإلكتروني محمي]"،" Tom ")؛ // لمن نرسل MailAddress إلى = new MailAddress (" [البريد الإلكتروني محمي]") ؛ // إنشاء كائن رسالة MailMessage m = new MailMessage (من ، إلى) ؛ // موضوع الرسالة m.Subject =" اختبار "؛ // message text m.Body ="

خطاب اختبار لعميل SMTP

"؛ // تمثل الرسالة كود أتش تي أم أل m.IsBodyHtml = صحيح ؛ // عنوان خادم smtp والمنفذ الذي سنرسل منه الحرف SmtpClient smtp = new SmtpClient ("smtp.gmail.com"، 587) ؛ // تسجيل الدخول وكلمة المرور smtp.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" mypassword ") ؛ smtp.EnableSsl = صحيح ؛ smtp.Send (m) ؛ Console.Read () ؛)))

للإرسال ، يتم استخدام طريقة Send () ، والتي تمرر كائن MailMessage.

يمكننا أيضًا استخدام الإصدار غير المتزامن للإرسال باستخدام طريقة SendMailAsync:

باستخدام النظام ؛ باستخدام System.Net ؛ باستخدام System.IO ؛ باستخدام System.Threading.Tasks ؛ باستخدام System.Net.Mail ؛ مساحة الاسم NetConsoleApp (برنامج فئة (ثابت باطل رئيسي (سلسلة args) (SendEmailAsync (). GetAwaiter () ؛ Console.Read () ؛) مهمة غير متزامنة خاصة ثابتة SendEmailAsync () (MailAddress from = new MailAddress (" [البريد الإلكتروني محمي]"،" Tom ")؛ MailAddress to = new MailAddress (" [البريد الإلكتروني محمي]") ؛ MailMessage m = new MailMessage (من ، إلى) ؛ m.Subject =" اختبار "؛ m.Body =" حرف الاختبار 2 من عملية عميل smtp "؛ SmtpClient smtp = new SmtpClient (" smtp.gmail.com "، 587) ؛ smtp.Credentials = new NetworkCredential (" [البريد الإلكتروني محمي]"،" mypassword ")؛ smtp.EnableSsl = صحيح ؛ انتظار smtp.SendMailAsync (m)؛ Console.WriteLine (" تم إرسال البريد ") ؛)))

إضافة المرفقات

يمكننا إرفاق المرفقات بالرسالة باستخدام خاصية المرفقات. يمثل كل مرفق كائن System.Net.Mail.Attachment:

MailAddress من = new MailAddress (" [البريد الإلكتروني محمي]"،" Tom ")؛ MailAddress to = new MailAddress (" [البريد الإلكتروني محمي]") ؛ MailMessage m = new MailMessage (من ، إلى) ؛ m.Attachments.Add (مرفق جديد (" D: //temlog.txt ")) ؛