Xamarin EmailAttachment 不在 iOS 上添加附件

Posted

技术标签:

【中文标题】Xamarin EmailAttachment 不在 iOS 上添加附件【英文标题】:Xamarin EmailAttachment does not add attachment on iOS 【发布时间】:2021-10-02 15:00:44 【问题描述】:

我正在使用here 找到的股票代码向电子邮件添加附件。它在android中运行良好。当我在 ios 上运行它时,一切正常,除了消息上没有附件。邮件客户端启动,我看到地址、主题和消息都已填写,但没有附件。是否有某个设置可以在 iOS 上运行?

            var message = new EmailMessage 
                Subject = "Log Files",
                To = new List<string>(new[]  "developer@test.com" ),
                Body = builder.ToString()
            ;

            var fn = "Attachment.txt";
            var file = Path.Combine(FileSystem.CacheDirectory, fn);
            File.WriteAllText(file, "Hello World");

            message.Attachments.Add(new EmailAttachment(file));

            await Email.ComposeAsync(message);

我已经在 Info.plist 中有以下内容:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>mailto</string>
</array>

奇怪的是,我可以看到消息对象上有一个附件。是否有一个调试设置,我可以在其中看到更多关于为什么没有在 iOS 中添加附件的诊断信息?

【问题讨论】:

尝试查看 iOS 控制台日志输出以查看操作系统是否拒绝附件 @SushiHangover 我没有看到任何错误,也没有收到任何无效文件异常错误。 每个电子邮件客户端都不同,可能只支持特定的文件扩展名,或者根本不支持。您可以尝试使用其他电子邮件客户端。 @AdrainZhu-MSFT 这是针对 Gmail 和 Outlook 进行的测试。也不弹出附件。在Android上他们这样做。它与这是一个开发版本还是一个生产版本有关吗?我只是将示例代码复制到一个全新的项目中并运行它,同样的事情,没有附件。 【参考方案1】:

对我来说一切正常,电子邮件按预期发送,带有附件。

我正在使用Outlook 进行测试。

如果可能的话,您能否附上一个可以在此处重现该问题的基本项目?

【讨论】:

我会将您的答案标记为正确,但我会跟进我的特殊情况,以防其他人遇到这种情况。【参考方案2】:

事实上,该代码在我刚刚安装了 Mail 应用程序的 iPad 上运行。我的特殊情况是没有安装邮件应用程序的 iPhone 11,只安装了 GMail 应用程序。调用此应用程序会无缘无故地直接删除附件。当我完全卸载 Gmail 应用程序,安装邮件应用程序并在该应用程序内从 Gmail 中弹出邮件时,一切正常。太糟糕了,没有一个回调来说明客户端是否附加了文档。

【讨论】:

以上是关于Xamarin EmailAttachment 不在 iOS 上添加附件的主要内容,如果未能解决你的问题,请参考以下文章

TeamCity 上的 Xamarin 表单:Xamarin.Forms 任务与目标不匹配

Xamarin Forms 2.3.3.175 和 Xamarin.Firebase.Messaging 不可能?

图像不显示 Xamarin.Forms

Xamarin.iOS:Firebase 推送通知不起作用

Xamarin.Forms - 创建新页面时 InitializeComponent 不存在

xamarin 表单中全局不支持 pushasync 的解决方案是啥?