准备
1:我使用的是QQ邮箱的SMTP服务来实现邮件的发送,理论上此插件支持全部的邮件服务功能
2: 相应插件:enough_mail ^1.3.6,url:https://pub.dev/packages/enough_mail/example
使用
1:首先确保开通POP3/SMTP或IMAP/SMTP服务,获取到邮件的授权码
PS:注意不要泄漏个人授权码哦!
2:参考如下代码:
Future<void> smtpemail() async {
final client = SmtpClient('neverouo.bug', isLogEnabled: true);
try {
await client.connectToServer('smtp.qq.com', 465,isSecure: true);//这是QQ SMTP对应的地址,不需要更改
await client.ehlo();
if (client.serverInfo.supportsAuth(AuthMechanism.plain)) {
await client.authenticate('*你的邮箱地址*', '*你邮箱地址对应的授权码*', AuthMechanism.plain);
} else if (client.serverInfo.supportsAuth(AuthMechanism.login)) {
await client.authenticate('*你的邮箱地址*', '*你邮箱地址对应的授权码*', AuthMechanism.login);
} else {
return;
}
final builder = MessageBuilder.prepareMultipartAlternativeMessage();
builder.from = [MailAddress('*发送方用户名*', '*你的邮箱地址*')];
builder.to = [MailAddress('*接收方用户名*', '*对方的邮箱地址*')];
builder.subject = 'Bug收集 [' + DateTime.now().toString() + ']';
builder.addTextPlain('Bug测试1');
//builder.addTextHtml('<p>hello <b>world</b></p>');//支持HTML格式
final mimeMessage = builder.buildMimeMessage();
final sendResponse = await client.sendMessage(mimeMessage);
print('message sent: ${sendResponse.isOkStatus}');
} on SmtpException catch (e) {
print('SMTP failed with $e');
}
}
将上面代码中的 * * 包含的中文 替换为你自己的邮箱地址与授权码,即可实现在app内发送邮件,作为简易的BUG上报至邮箱,与用户反馈功能通道。
builder.subject 为邮件标题
builder.addTextPlain 为邮件内容
Comments NOTHING