Flutter邮件网关客户端插件mailgw_client的使用

Flutter邮件网关客户端插件mailgw_client的使用

简介

这个包是一个简单的但完整的mail.gw API包装器,你可以用它来保存和管理你的账户,并读取所有的临时邮箱。

示例

查看 示例文件夹

使用方法

MailGw

这是一个静态类,主要用于存储、创建和加载账户。你可以通过 getAuths 保存所有账户,并通过 loadAuths 加载它们。

创建一个账户

要创建一个账户,只需要使用 MailGw.register 方法。

参数

  • randomStringLength: 将用于生成随机密码和/或用户名(默认长度为10)
  • username: 邮箱地址的用户名(例如:abcdqwerty@mail.gw 中的 abcdqwerty)
  • password: 账户的密码
  • domain: 邮箱地址的域名(如 @mail.gw,必须是 Domain 类),如果没有提供,则会生成一个随机的。
await MailGw.register(password: 'ah yes password');

返回 Future<GWAccount> 实例(必须像上面那样等待)

加载一个账户

你可以通过 MailGw.login 方法加载一个账户。

如果你提供了 id 并且它存在于已保存的账户中,它将返回保存的账户实例(这在你不想再次进行API请求时非常有用)。

如果你不提供 id 并且提供 addresspassword,它将从API检索账户。

如果没有任何参数提供或者提供的参数无效,并且 elseNewtrue,则将返回一个新的账户(默认为 true)。

如果没有任何参数提供并且 elseNewfalse,则抛出带有代码 -1MailError(无效参数)。

GWAccount

类成员

  • String id, address, 和 password: 账户的ID、地址和密码。
  • DateTime createdAt: 账户创建的时间
  • DateTime updatedAt: 最后一次更新账户消息的时间
  • bool isDeleted: 告诉账户是否已被删除
  • bool isDisabled: 告诉账户是否已被禁用
  • int quota: 可以存储在消息中的字节数
  • int used: 已使用的字节数

获取账户的消息

你可以使用以下方法获取账户的消息:

await account.getMessages();

返回 Future<List<Message>> (必须像上面那样等待)

更新账户实例

你可以通过以下方法更新账户实例(updatedAtquotaused):

await account.update();

返回 Future<GWAccount> (必须像上面那样等待)

删除账户

你可以通过以下方法删除账户:

await account.delete()

返回 Future<bool> (必须像上面那样等待)

注意: 在账户被删除后不要使用账户,否则在尝试使用账户的方法时会抛出错误(账户的消息也是如此)。

只能访问成员!

监听消息

你可以通过以下方法监听消息:

account.messages.listen((){})

account.messages 返回一个 Messages 的流。

GWMessage

类成员

  • String id: 消息的唯一标识符(MailGw数据库)
  • String accountId: 账户的唯一标识符
  • String msgid: 消息的全局唯一标识符(发送服务和MailGw都知道)
  • String intro: 消息的简介
  • Map<String, dynamic> from: 发送者
  • List<Map<String, dynamic>> to: 收件人
  • List<String> cc: 抄送收件人
  • List<String> bcc: 密送收件人
  • String subject: 消息的主题
  • bool seen: 消息是否已查看
  • bool flagged: 消息是否已标记
  • bool isDeleted: 消息是否已删除
  • List<String> verifications: 消息的验证
  • bool retention: 如果消息已到达
  • DateTime retentionDate: 消息保留日期
  • String text: 消息的文本
  • List<String> html: 消息的HTML
  • bool hasAttachments: 消息是否有附件
  • List<GWAttachment> attachments: 消息的附件列表
  • int size: 消息的大小
  • String url: 消息的下载URL
  • DateTime createdAt: 消息创建日期
  • DateTime updatedAt: 消息查看时间

下载消息

很简单:

await message.download();

返回 Future<MessageSource> (必须像上面那样等待)

删除消息

很简单:

await message.delete();

返回 Future<bool> (必须像上面那样等待)

标记消息为已查看

你可以通过以下方法标记消息为已查看:

await message.seen();

返回 Future<bool> (必须像上面那样等待)

GWDomain

类成员

  • String id: 域名的ID
  • String domain: 域名(例如:@mailgw.com)
  • bool isActive: 域名是否活跃
  • DateTime createdAt: 域名创建时间
  • DateTime updatedAt: 域名更新时间

获取所有域名

你可以通过以下方法获取所有域名:

await Domain.domains;

返回 Future<List<Domain>> (必须像上面那样等待)

示例代码

import 'dart:async';

import 'package:mailgw_client/mailgw_client.dart';

void main() async {
  GWAccount account = await MailGw.register();
  print('Send a message to the following account: $account');
  late StreamSubscription subscription;
  subscription = account.messages.listen((e) async {
    print('Listened to message with id: $e');
    if (e.hasAttachments) {
      print('Message has following attachments:');
      e.attachments.forEach((a) => print('- $a'));
    }
    await subscription.cancel();
  });
}

更多关于Flutter邮件网关客户端插件mailgw_client的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter邮件网关客户端插件mailgw_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成并使用mailgw_client插件的一个基本示例。请注意,mailgw_client是一个假设的插件名称,因为Flutter社区中可能没有现成的名为mailgw_client的官方或广泛使用的邮件网关客户端插件。不过,我会基于通常的插件使用方式给出一个示例,你可以根据实际的插件文档进行调整。

首先,确保你已经在pubspec.yaml文件中添加了mailgw_client依赖(这里假设它存在):

dependencies:
  flutter:
    sdk: flutter
  mailgw_client: ^x.y.z  # 替换为实际的版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤使用mailgw_client插件发送邮件:

  1. 导入插件

在你的Dart文件中导入mailgw_client插件:

import 'package:mailgw_client/mailgw_client.dart';
  1. 配置和使用插件

下面是一个简单的示例,展示如何使用mailgw_client发送邮件。请注意,这只是一个假设的API调用,你需要根据实际的插件文档进行调整。

void sendEmail() async {
  // 假设mailgw_client提供了一个MailClient类来处理邮件发送
  final mailClient = MailClient(
    smtpServer: 'smtp.example.com', // SMTP服务器地址
    port: 587,                      // SMTP服务器端口
    username: 'your-email@example.com', // 你的邮箱用户名
    password: 'your-email-password',    // 你的邮箱密码或应用专用密码
  );

  // 构建邮件内容
  final email = Email(
    from: 'your-email@example.com',
    to: ['recipient@example.com'],
    subject: 'Test Email',
    body: 'This is a test email sent from Flutter using mailgw_client plugin.',
    isHtml: false, // 如果邮件内容是HTML,则设置为true
  );

  try {
    // 发送邮件
    await mailClient.send(email);
    print('Email sent successfully!');
  } catch (e) {
    print('Failed to send email: $e');
  }
}
  1. 调用发送邮件函数

你可以在你的Flutter应用的某个按钮点击事件中调用sendEmail函数,例如:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('MailGW Client Demo'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: sendEmail,
            child: Text('Send Email'),
          ),
        ),
      ),
    );
  }
}

注意

  • 在实际项目中,请不要在客户端代码中硬编码敏感信息(如邮箱用户名和密码)。考虑使用环境变量或安全的密钥管理服务。
  • 对于生产环境,使用应用专用密码或OAuth2等更安全的认证方法。
  • 确保SMTP服务器设置正确,并且你的网络环境允许发送SMTP请求。
  • 由于mailgw_client是一个假设的插件名称,上述代码可能需要根据实际插件的API进行调整。务必参考插件的官方文档。

如果你找不到名为mailgw_client的Flutter插件,你可能需要寻找其他第三方库或自己实现与邮件网关的交互。

回到顶部