如何在不打开Flutter默认电子邮件应用程序的情况下发送邮件?

ru9i0ody  于 2023-05-23  发布在  Flutter
关注(0)|答案(3)|浏览(172)

是否可以在不打开默认电子邮件应用程序的情况下发送电子邮件?(直接)我使用了两个插件。但两者都是打开的默认应用程序。
使用flutter_email_sender插件

final Email email = Email(
        body:
            'Vendor Name = ${value.title} ${value.ownerName}<br>\nCompany Name = ${value.displayName}',
        subject: 'New Vendor Registed',
        recipients: ['sample@gmail.com'],
        isHTML: true,
      );

await FlutterEmailSender.send(email)

使用url_launcher插件

final String _email = 'mailto:' +
                         'bhanukaisuru96@gmail.com'+
                         '?subject=' +
                         'New Vendor Registered' +
                         '&body=' +
                         'Vendor Name =${value.title} ${value.ownerName}\n' +
                         'Company Name = ${value.displayName}';

await FlutterEmailSender.send(email);
a11xaf1n

a11xaf1n1#

您可以直接使用sendGridApi和http post请求从flutter应用程序发送消息。在这里,您需要将sendGridId添加到您的here_your_sendGrid_id。下面是示例代码:

sendRegistrationNotification(String email) async {
Map<String, String> headers = new Map();
headers["Authorization"] =
    "Bearer here_your_sendGrid_id";
headers["Content-Type"] = "application/json";

var url = 'https://api.sendgrid.com/v3/mail/send';
var response = await http.post(url,
    headers: headers,
    body:
        "{\n          \"personalizations\": [\n            {\n              \"to\": [\n                {\n                  \"email\": \"yourmail@gmail.com\"\n                },\n                {\n                  \"email\": \"yourmail@gmail.com\"\n                }\n              ]\n            }\n          ],\n          \"from\": {\n            \"email\": \"yourmail@gmail.com\"\n          },\n          \"subject\": \"Test Message\",\n          \"content\": [\n            {\n              \"type\": \"text\/plain\",\n              \"value\": \"New user register: $email\"\n            }\n          ]\n        }");
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');

}

wfveoks0

wfveoks02#

可以,您可以使用**mailer**插件直接通过SMTP从应用发送邮件。

  • 您需要询问并存储用户的电子邮件、密码、SMTP端口和主机,并使用这些凭据发送电子邮件。*

这将与几乎任何电子邮件提供商。
如果您不想存储用户凭据,则必须单独集成不同的电子邮件API,如使用OAuth的GMail API和Outlook API。
希望有帮助

tjrkku2a

tjrkku2a3#

我一直在寻找这样做的方法,终于找到了。
https://pub.dev/packages/mailer
使用邮件插件形式的链接以上。这是非常简单和易于使用。请注意,您必须添加您的电子邮件作为发件人邮件和您的密码,这样邮件才会通过,并且不要将您的(发件人邮件)与收件人邮件混淆。

相关问题