#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 внутри этого приложения, все сработало так, как было задумано. Жаль, что нет обратного вызова, в котором указывалось бы, прикрепил ли клиент документ или нет.