السلام عليكم اعمل على تطبيق فلاتر هل يوجد طريقة لاارسال رسائل الى ايميلات yahoo
شكرا مقدما
وعليكم السلام بطبع يوجد طريقه
لإرسال رسائل البريد الإلكتروني، نستخدم عادةً خدمة البريد الإلكتروني من الواجهة الخلفية، ولكن إذا كنت تعمل على تطبيق صغير أو ليس لديك معرفة بالواجهة الخلفية، فلا داعي للقلق بشأن إرسال البريد الإلكتروني لأن Flutter mailer موجود هنا لتعيينه حتى SMTP الخاص بك من الواجهة الأمامية.، اتبع خطوه بخطوه لتري كيفية إرسال بريد إلكتروني من تطبيق Flutter.
أولاً سنقوم بإنشاء تطبيق وإنشاء واجهة مستخدم أساسية جدًا.
import 'package:flutter/material.dart'; class HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Flutter Mailer"), ), body: Center( child: ElevatedButton( onPressed: () { }, child: Text("Send Email")), ), ); } }
الآن سوف نقوم بإضافة حزمة ميلر.
flutter pub add mailer
ملاحظة: لإرسال رسائل البريد الإلكتروني من خلال mailer، علينا تقديم البريد الإلكتروني وكلمة المرور في الرمز. لذلك لا تكشف عن كتلة التعليمات البرمجية هذه في الريبو العام الخاص بك.
بالنسبة لكلمة المرور، لن تقبل كلمة المرور المعتادة لدينا، وبدلاً من ذلك، سنقوم بإنشاء كلمة مرور التطبيق من حساب google
يمكنك اتباع الخطوات هذه لانشاء الحساب بطريقه صحيحه
إذا كنت تستخدم التحقق بخطوتين وحصلت على خطأ "كلمة المرور غير صحيحة" عند تسجيل الدخول، فيمكنك محاولة استخدام كلمة مرور التطبيق.
انتقل إلى حساب جوجل الخاص بك.
حدد الأمان.
ضمن "تسجيل الدخول إلى Google"، حدد كلمات مرور التطبيقات. قد تحتاج إلى تسجيل الدخول. إذا لم يكن لديك هذا الخيار، فقد يكون ذلك للأسباب التالية:
أ) لم يتم إعداد التحقق بخطوتين لحسابك.
ب) يتم إعداد التحقق بخطوتين لمفاتيح الأمان فقط.
ج) حسابك من خلال العمل أو المدرسة أو أي منظمة أخرى.
د) لقد قمت بتشغيل الحماية المتقدمة.
4. في الجزء السفلي، اختر تحديد التطبيق واختر التطبيق الذي تستخدمه. حدد الجهاز واختر الجهاز الذي تستخدمه. بالنسبة لتطبيق الرفرفة، يمكنك تحديد خيار آخر وإعطاء اسم لتطبيقك.
5. اتبع التعليمات لإدخال كلمة مرور التطبيق. كلمة مرور التطبيق هي الرمز المكون من 16 حرفًا الموجود في الشريط الأصفر على جهازك.
6. اضغط على تم.
نصيحة: في معظم الأحيان، سيتعين عليك إدخال كلمة مرور التطبيق مرة واحدة فقط لكل تطبيق أو جهاز، لذلك لا تقلق بشأن حفظها.
وظيفة إرسال البريد الإلكتروني
سنقوم بإنشاء هذه الوظيفة التي سترسل بريدًا إلكترونيًا من التطبيق الخارجي
import 'dart:io'; import 'package:flutter/material.dart'; import 'package:mailer/mailer.dart'; import 'package:mailer/smtp_server/gmail.dart'; sendEmail(BuildContext context //For showing snackbar ) async { String username = 'abc@gmail.com'; //Your Email String password = '****************'; // 16 Digits App Password Generated From Google Account final smtpServer = gmail(username, password); // Use the SmtpServer class to configure an SMTP server: // final smtpServer = SmtpServer('smtp.domain.com'); // See the named arguments of SmtpServer for further configuration // options. // Create our message. final message = Message() ..from = Address(username, 'Ahmed Usman') ..recipients.add('recipient-email@gmail.com') // ..ccRecipients.addAll(['abc@gmail.com', 'xyz@gmail.com']) // For Adding Multiple Recipients // ..bccRecipients.add(Address('a@gmail.com')) For Binding Carbon Copy of Sent Email ..subject = 'Mail from Mailer' ..text = 'Hello dear, I am sending you email from Flutter application' // ..html = "<h1>Test</h1>\n<p>Hey! Here's some HTML content</p>"; // For Adding Html in email // ..attachments = [ // FileAttachment(File('image.png')) //For Adding Attachments // ..location = Location.inline // ..cid = '<myimg@3.141>' // ] ; try { final sendReport = await send(message, smtpServer); print('Message sent: ' + sendReport.toString()); ScaffoldMessenger.of(context) .showSnackBar(SnackBar(content: Text("Mail Send Successfully"))); } on MailerException catch (e) { print('Message not sent.'); print(e.message); for (var p in e.problems) { print('Problem: ${p.code}: ${p.msg}'); } } }
باستخدام هذه الوظيفة، تكون قد أرسلت بريدًا إلكترونيًا بنجاح من تطبيق Flutter الخاص بك.
يوجد طريقه بسيطه اخري ايضا يمكنك تجربتها
اولا عليك تثبيت هذه الحزمه
flutter pub add url_launcher
ثما باستخدام هذه الداله يمكنك ارسال الرسائل الي ايملات yahoo
_launchURL(String toMailId, String subject, String body) async { var url = 'mailto:$toMailId?subject=$subject&body=$body'; if (await canLaunch(url)) { await launch(url); } else { throw 'Could not launch $url'; } }
ما ستحتاجه هو:
بعد تثبيت المكتبة:
dependencies: flutter_mailer: ^2.0.0
عليك استيرادها:
import 'package:flutter_mailer/flutter_mailer.dart';
ثم إرسال رسالة بريد إلكتروني:
import 'package:flutter_mailer/flutter_mailer.dart'; ... ... final MailOptions mailOptions = MailOptions( body: 'a long body for the email <br> with a subset of HTML', subject: 'the Email Subject', recipients: ['example@example.com'], isHTML: true, bccRecipients: ['other@example.com'], ccRecipients: ['third@example.com'], attachments: [ 'path/to/image.png', ], ); final MailerResponse response = await FlutterMailer.send(mailOptions); switch (response) { case MailerResponse.saved: /// ios only platformResponse = 'mail was saved to draft'; break; case MailerResponse.sent: /// ios only platformResponse = 'mail was sent'; break; case MailerResponse.cancelled: /// ios only platformResponse = 'mail was cancelled'; break; case MailerResponse.android: platformResponse = 'intent was successful'; break; default: platformResponse = 'unknown'; break; }
بالطبع عليك استبدال القيم التالية بما تريد:
body: 'a long body for the email <br> with a subset of HTML', subject: 'the Email Subject', recipients: ['example@example.com'], isHTML: true, bccRecipients: ['other@example.com'], ccRecipients: ['third@example.com'], attachments: [ 'path/to/image.png', ],
وفي نظام الأندرويد تستطيع تفقد هل تطبيق معين مثبت مثل GMAIL كالتالي:
const GMAIL_SCHEMA = 'com.google.android.gm'; final bool gmailinstalled = await FlutterMailer.isAppInstalled(GMAIL_SCHEMA); if(gmailinstalled) { final MailOptions mailOptions = MailOptions( body: 'a long body for the email <br> with a subset of HTML', subject: 'the Email Subject', recipients: ['example@example.com'], isHTML: true, bccRecipients: ['other@example.com'], ccRecipients: ['third@example.com'], attachments: [ 'path/to/image.png', ], appSchema: GMAIL_SCHEMA, ); await FlutterMailer.send(mailOptions); }
وستجد تفصيل أكثر بالمستند الرسمي:
وتتوفر مكتبات أخرى لإرسال رسائل البريد الإلكتروني، مثل mailer و dart_smtp.
التعليقات