Привязка к электронной почте Xamarin не добавляет вложения в iOS

#xamarin #email-attachments #xamarin.essentials

Вопрос:

Я использую биржевой код, найденный здесь, для добавления вложений в электронное письмо. Это прекрасно работает в 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?

Комментарии:

1. Попробуйте просмотреть вывод журнала консоли iOS, чтобы узнать, отклоняет ли ОС вложение

2. @SushiHangover Я не вижу никаких ошибок, и я не получаю никаких ошибок с недопустимыми исключениями файлов.

3. Каждый почтовый клиент отличается и может поддерживать только определенные расширения файлов или вообще не поддерживать их. Вы можете попробовать это с другими почтовыми клиентами.

4. @AdrainZhu-MSFT Это было протестировано против Gmail и Outlook. Ни одно из вложений не всплывает. На Android они так и делают. Связано ли это с тем, что это сборка разработки по сравнению с производственным выпуском? Я просто скопировал образец кода в совершенно новый проект и запустил его, и то же самое, без вложений.

Ответ №1:

С моей стороны все работает нормально , электронное письмо было отправлено с вложением, как и ожидалось.

введите описание изображения здесь

Я использую Outlook для тестирования.

Если возможно, не могли бы вы приложить базовый проект, который мог бы воспроизвести проблему здесь ?

Комментарии:

1. Я отмечу ваш ответ как правильный, но я буду следить за своей конкретной ситуацией на случай, если кто-то еще столкнется с ней.

Ответ №2:

Код действительно работает на моем iPad, на котором установлено только почтовое приложение. Мой конкретный случай-iPhone 11, на котором не установлено почтовое приложение, только приложение GMail. Вызов этого приложения напрямую удаляет вложение без всякой причины. Когда я полностью удалил приложение Gmail, установил почтовое приложение и отправил почту из Gmail внутри этого приложения, все сработало так, как было задумано. Жаль, что нет обратного вызова, в котором указывалось бы, прикрепил ли клиент документ или нет.