gpt4 book ai didi

dart - 如何在 Flutter 中发送带有附件的邮件?

转载 作者:行者123 更新时间:2023-12-03 21:20:42 45 4
gpt4 key购买 nike

我找到了名为 mailer3 的 dart 插件:“^1.1.9”。以前我在移动临时目录中创建了一个图像。在 Flutter 移动应用程序中,我尝试使用 mailer3 插件将这张保存的图片作为邮件发送。邮件到达目的地,我没有收到错误,但似乎丢失了正在处理的附件。

在 dart 中它工作得很好并且也发送附件。在 flutter 中,我可以使用临时目录在应用程序中显示图像,但无法附加到邮件中。

图像位置在设备的临时文件夹中:

  • '/data/user/0/com.myApp.myApp/app_flutter/20180700087.jpg'

  • 我可以使用以下代码显示图像:
  • new FileImage(File('$newDekontImage'),

  • 错误:
    E/flutter (21184): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
    E/flutter (21184): FileSystemException: Cannot open file, path = '/data/user/0/com.myApp.myApp/app_flutter/20180700087.jpg' (OS Error: No such file or directory, errno = 2)

    如何使用此问题中提供的信息在 Flutter 中发送带有附件的邮件?

    Flutter 代码:
    // TODO: SEND MAIL
    void _sendMail() async {
    if (!_formKey.currentState.validate()) {
    return;
    } else {
    _formKey.currentState.save();

    var _options = new GmailSmtpOptions()
    ..username = “mymailaddress@gmail.com"
    ..password = “myPassword”;

    var _emailTransport = new SmtpTransport(_options);
    var _envelope = new Envelope()
    ..from = "mymailaddress@gmail.com"
    ..recipients.add(_receiverMailAddress)
    ..subject = "${_userDekontDetails[0][0].toString()} - Receipt”
    ..attachments.add(await new Attachment(file: await new File('$newDekontImage')))
    ..text = "${_userDekontDetails[0][0].toString()} - Receipt"
    ..html = '<h3>${_userDekontDetails[0][0].toString()} Receipt.</h3>'
    '<p>Hi, registered under my name, I am sending the receipt (${widget._currentUserReceiptNo}) with attached to this mail.</p>'
    '<p></p>'
    '<h5>Regards, </br></h5>'
    '${_userDekontDetails[0][0].toString()}';

    _emailTransport.send(_envelope)
    ..then((envelope) => print('Email sent'))
    ..catchError((e) => print('Error occured: $e'));
    }
    }

    最佳答案

    在撰写本文时,mailer3 插件已过时且 mailer是用于发送电子邮件的最新插件。 mailer 插件目前包含 mailer2 和 mailer3 的重要修复。我建议选择使用 mailer 包而不是 mailer3。
    这是您的代码片段从 mailer3 到 mailer 的端口

    _sendMail(String username, String accessToken) async {
    // Read https://pub.dev/documentation/mailer/latest/smtp_server_gmail/gmailSaslXoauth2.html
    var _emailTransport = gmailSaslXoauth2(username, accessToken);

    var _envelope = new Message()
    ..from = "mymailaddress@gmail.com"
    ..recipients.add("recepient@gmail.com")
    ..subject = '{EMAIL_SUBJECT_GOES_HERE}'
    // Read https://pub.dev/documentation/mailer/latest/mailer/FileAttachment-class.html
    ..attachments
    .add(FileAttachment(File('{FILE_PATH}')))
    ..text = '{PLAIN_TEXT_GOES_HERE}'
    ..html = '{HTML_CONTENT_GOES_HERE}';

    send(_envelope, _emailTransport)
    ..then((envelope) => print('Email sent'))
    ..catchError((e) => print('Error occured: $e'));
    }

    关于dart - 如何在 Flutter 中发送带有附件的邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51654175/

    45 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com