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
并且提供 address
和 password
,它将从API检索账户。
如果没有任何参数提供或者提供的参数无效,并且 elseNew
为 true
,则将返回一个新的账户(默认为 true
)。
如果没有任何参数提供并且 elseNew
为 false
,则抛出带有代码 -1
的 MailError
(无效参数)。
GWAccount
类成员
String id, address, 和 password
: 账户的ID、地址和密码。DateTime createdAt
: 账户创建的时间DateTime updatedAt
: 最后一次更新账户消息的时间bool isDeleted
: 告诉账户是否已被删除bool isDisabled
: 告诉账户是否已被禁用int quota
: 可以存储在消息中的字节数int used
: 已使用的字节数
获取账户的消息
你可以使用以下方法获取账户的消息:
await account.getMessages();
返回 Future<List<Message>>
(必须像上面那样等待)
更新账户实例
你可以通过以下方法更新账户实例(updatedAt
、quota
和 used
):
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
: 消息的HTMLbool hasAttachments
: 消息是否有附件List<GWAttachment> attachments
: 消息的附件列表int size
: 消息的大小String url
: 消息的下载URLDateTime createdAt
: 消息创建日期DateTime updatedAt
: 消息查看时间
下载消息
很简单:
await message.download();
返回 Future<MessageSource>
(必须像上面那样等待)
删除消息
很简单:
await message.delete();
返回 Future<bool>
(必须像上面那样等待)
标记消息为已查看
你可以通过以下方法标记消息为已查看:
await message.seen();
返回 Future<bool>
(必须像上面那样等待)
GWDomain
类成员
String id
: 域名的IDString 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
更多关于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
插件发送邮件:
- 导入插件:
在你的Dart文件中导入mailgw_client
插件:
import 'package:mailgw_client/mailgw_client.dart';
- 配置和使用插件:
下面是一个简单的示例,展示如何使用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');
}
}
- 调用发送邮件函数:
你可以在你的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插件,你可能需要寻找其他第三方库或自己实现与邮件网关的交互。