Отправить письмо на флаттер прямо из формы - PullRequest
1 голос
/ 24 июня 2019

Я хочу отправить электронное письмо прямо из формы флаттера.Какой самый лучший вариант?Это не может быть сложно.У плагинов всегда есть ошибки и нет прямых.Нет возможности поставить mailto и отправить письмо?

Спасибо

Ответы [ 3 ]

0 голосов
/ 25 июня 2019
   import 'package:flutter/material.dart';
   import 'dart:async';
   import 'package:flutter_email_sender/flutter_email_sender.dart';

   void main() => runApp(MyApp());

  class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
  // TODO: implement build
  return MaterialApp(
  debugShowCheckedModeBanner: false,
  home: Home(),
   );
   }
  }
 class Home extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
  // TODO: implement createState
  return _HomeState();
  }
 }

class _HomeState extends State<Home> {
var _emailFormKey = GlobalKey<FormState>();
TextEditingController emailController = new TextEditingController();
TextEditingController messageController = new TextEditingController();

@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
  resizeToAvoidBottomPadding: false,
  appBar: AppBar(
    title: Text("Email sending App"),
  ),
  body: Form(
    key: _emailFormKey,
    child: Column(
      children: <Widget>[
        Container(
          margin: EdgeInsets.only(top: 50.0, left: 15.0, right: 15.0),
          child: TextFormField(
            controller: emailController,
            validator: (value){
              if(value.isEmpty) {
                return "please Enter email";
              }
            },
            decoration: InputDecoration(
                labelText: "Enter email",
                border: OutlineInputBorder(
                    borderSide: BorderSide(
                  color: Colors.red,
                  width: 2.0,
                ))),
          ),
        ),
        Container(
          margin: EdgeInsets.only(top: 15.0, left: 15.0, right: 15.0),
          child: TextFormField(
            controller: messageController,
            validator: (value){
              if(value.isEmpty) {
                return "please Enter message";
              }
            },
            decoration: InputDecoration(
                labelText: "Enter Message",
                border: OutlineInputBorder(
                    borderSide: BorderSide(
                  color: Colors.red,
                  width: 2.0,
                ))),
          ),
        ),
        Container(
          margin: EdgeInsets.only(top: 15.0),
          child: RaisedButton(child: Text("Send"), onPressed: (){
            if(_emailFormKey.currentState.validate()){
              sendMessage();
            }
          }),
        )
      ],
      ),
     ),
     );
    }
   void sendMessage(){
   String inputEmail ;
   String inputMessage;
   Email email ;
   setState(() {
   inputEmail= emailController.text;
   inputMessage = messageController.text;
   if(inputMessage.isNotEmpty&&inputEmail.isNotEmpty) {
       email = Email(
       body: inputMessage,
       subject: 'Email subject',
       recipients: [inputEmail],
     );
     send(email);
    }

   });
  debugPrint('email - > $inputEmail  message -> $inputMessage');

  }
  void send(Email email) async {
  await FlutterEmailSender.send(email);
 }

 }

// пожалуйста, добавьте плагин "flutter_email_sender:" в файл pubspec.yaml

0 голосов
/ 25 июня 2019

Теперь у меня есть проблема с отправителем электронной почты:

  • flutter_email_sender не указывает версию Swift, и ни одна из целей (Runner), интегрирующих ее, не имеет SWIFT_VERSION набор атрибутов.Пожалуйста, свяжитесь с автором или установите атрибут SWIFT_VERSION хотя бы в одной из целей, которые интегрируют этот модуль.

    / usr / local / Cellar / cocoapods / 1.7.2 / libexec / gems / cocoapods-1.7.2 / lib / cocoapods / installer / xcode / target_validator.rb: 122: in verify_swift_pods_swift_version' /usr/local/Cellar/cocoapods/1.7.2/libexec/gems/cocoapods-1.7.2/lib/cocoapods/installer/xcode/target_validator.rb:37:in validate! '/usr/local/Cellar/cocoapods/1.7.2/libexec/gems/cocoapods-1.7.2/lib/cocoapods/installer.rb:578:in validate_targets' /usr/local/Cellar/cocoapods/1.7.2/libexec/gems/cocoapods-1.7.2/lib/cocoapods/installer.rb:158:in установить! '/usr/local/Cellar/cocoapods/1.7.2/libexec/gems/cocoapods-1.7.2/lib/cocoapods/command/install.rb:51:in run' /usr/local/Cellar/cocoapods/1.7.2/libexec/gems/claide-1.0.2/lib/claide/command.rb:334:in run '/ usr / local / Cellar / cocoapods /1.7.2 / libexec / gems / cocoapods-1.7.2 / lib / cocoapods / command.rb: 52: в run' /usr/local/Cellar/cocoapods/1.7.2/libexec/gems/cocoapods-1.7.2/bin/pod:55:in '/usr/local/Cellar/cocoapods/1.7.2/libexec/bin/pod:22:в load' /usr/local/Cellar/cocoapods/1.7.2/libexec/bin/pod:22:in '

Ошибка вывода из CocoaPods: ↳

[!] Automatically assigning platform `ios` with version `8.0` on target `Runner` because no platform was specified. Please
specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
0 голосов
/ 25 июня 2019

вы пытались использовать этот пакет? https://pub.dev/packages/flutter_email_sender

Это хороший отправитель электронной почты, но этот плагин перенаправляет вас в приложение Gmail для отправки фактического электронного письма. Оно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...