Я воспользовался кодом, чтобы отправить электронное письмо с маленькими и большими вложениями. Вышло время, когда у меня большая привязанность. Я обнаружил, что объект Progress кода работает, «IProgress Progress = new Progress(prog =>» не запускался. Размер прикрепленного файла составляет 4882 КБ. Если в электронном письме есть только небольшой файл и отправьте электронное письмо. В моем коде чего-то не хватает или серверу требуются какие-то настройки? Надеюсь, кто-нибудь подскажет мне, как это исправить. Заранее спасибо.
У меня возникают проблемы с большими вложениями при отправке электронной почты в библиотеке Microsoft Graph 5 с использованием .NET 4.7.2.
Фрагмент кода ссылки:
public string SendEmailWithAttachments(GraphServiceClient graphClient, string objectID, string recipient, FileInfo littleAttachment, FileInfo bigAttachment)
{
var _Msg = string.Empty;
// Create message
var draftMessage = new Microsoft.Graph.Models.Message
{
Subject = "Large attachment test",
};
draftMessage.ToRecipients = new List() { new Recipient() { EmailAddress = new EmailAddress() { Address = recipient } } };
//---------------------------------------------------Little Attachments-------------------------------------------------------
byte[] littleStream = File.ReadAllBytes(littleAttachment.FullName);
draftMessage.Attachments = new List
{
new Microsoft.Graph.Models.Attachment
{
OdataType = "#microsoft.graph.fileAttachment",
Name = littleAttachment.Name,
AdditionalData = new Dictionary
{
{
"contentBytes", Convert.ToBase64String(littleStream)
}
}
}
};
//---------------------------------------------------Little Attachments End---------------------------------------------------
var savedDraft =graphClient.Users[objectID].Messages.PostAsync(draftMessage).GetAwaiter().GetResult();
//---------------------------------------------------Big Attachments-------------------------------------------------------
var fileStream = System.IO.File.OpenRead(bigAttachment.FullName);
var uploadRequestBody = new Microsoft.Graph.Users.Item.Messages.Item.Attachments.CreateUploadSession.CreateUploadSessionPostRequestBody
{
AttachmentItem = new AttachmentItem
{
AttachmentType = AttachmentType.File,
Name = bigAttachment.Name,
Size = fileStream.Length,
ContentType = "application/octet-stream"
}
};
var uploadSession =graphClient.Users[objectID]
.Messages[savedDraft.Id]
.Attachments
.CreateUploadSession
.PostAsync(uploadRequestBody).GetAwaiter().GetResult();
// Max slice size must be a multiple of 320 KiB
int maxSliceSize = 320 * 1024;
var fileUploadTask = new LargeFileUploadTask(uploadSession, fileStream, maxSliceSize);
var totalLength = fileStream.Length;
// Create a callback that is invoked after each slice is uploaded
IProgress progress = new Progress(prog =>
{
_Msg = $"Uploaded {prog} bytes of {totalLength} bytes";
});
try
{
// Upload the file
var uploadResult = fileUploadTask.UploadAsync(progress).GetAwaiter().GetResult();
_Msg = (uploadResult.UploadSucceeded ? "Upload complete" : "Upload failed");
}
catch (ServiceException ex)
{
_Msg = ($"Error uploading: {ex.ToString()}");
}
//--------------------------------------------------------Big Attachments Ends---------------------------------------------
//send the Draft
graphClient.Users[objectID].Messages[savedDraft.Id].Send.PostAsync().GetAwaiter().GetResult();
return _Msg + " send: succeed";
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... n-ms-graph
IProgress не работает в графике MS ⇐ C#
Место общения программистов C#
1726489111
Anonymous
Я воспользовался кодом, чтобы отправить электронное письмо с маленькими и большими вложениями. Вышло время, когда у меня большая привязанность. Я обнаружил, что объект Progress кода работает, «IProgress Progress = new Progress(prog =>» не запускался. Размер прикрепленного файла составляет 4882 КБ. Если в электронном письме есть только небольшой файл и отправьте электронное письмо. В моем коде чего-то не хватает или серверу требуются какие-то настройки? Надеюсь, кто-нибудь подскажет мне, как это исправить. Заранее спасибо.
У меня возникают проблемы с большими вложениями при отправке электронной почты в библиотеке Microsoft Graph 5 с использованием .NET 4.7.2.
Фрагмент кода ссылки:
public string SendEmailWithAttachments(GraphServiceClient graphClient, string objectID, string recipient, FileInfo littleAttachment, FileInfo bigAttachment)
{
var _Msg = string.Empty;
// Create message
var draftMessage = new Microsoft.Graph.Models.Message
{
Subject = "Large attachment test",
};
draftMessage.ToRecipients = new List() { new Recipient() { EmailAddress = new EmailAddress() { Address = recipient } } };
//---------------------------------------------------Little Attachments-------------------------------------------------------
byte[] littleStream = File.ReadAllBytes(littleAttachment.FullName);
draftMessage.Attachments = new List
{
new Microsoft.Graph.Models.Attachment
{
OdataType = "#microsoft.graph.fileAttachment",
Name = littleAttachment.Name,
AdditionalData = new Dictionary
{
{
"contentBytes", Convert.ToBase64String(littleStream)
}
}
}
};
//---------------------------------------------------Little Attachments End---------------------------------------------------
var savedDraft =graphClient.Users[objectID].Messages.PostAsync(draftMessage).GetAwaiter().GetResult();
//---------------------------------------------------Big Attachments-------------------------------------------------------
var fileStream = System.IO.File.OpenRead(bigAttachment.FullName);
var uploadRequestBody = new Microsoft.Graph.Users.Item.Messages.Item.Attachments.CreateUploadSession.CreateUploadSessionPostRequestBody
{
AttachmentItem = new AttachmentItem
{
AttachmentType = AttachmentType.File,
Name = bigAttachment.Name,
Size = fileStream.Length,
ContentType = "application/octet-stream"
}
};
var uploadSession =graphClient.Users[objectID]
.Messages[savedDraft.Id]
.Attachments
.CreateUploadSession
.PostAsync(uploadRequestBody).GetAwaiter().GetResult();
// Max slice size must be a multiple of 320 KiB
int maxSliceSize = 320 * 1024;
var fileUploadTask = new LargeFileUploadTask(uploadSession, fileStream, maxSliceSize);
var totalLength = fileStream.Length;
// Create a callback that is invoked after each slice is uploaded
IProgress progress = new Progress(prog =>
{
_Msg = $"Uploaded {prog} bytes of {totalLength} bytes";
});
try
{
// Upload the file
var uploadResult = fileUploadTask.UploadAsync(progress).GetAwaiter().GetResult();
_Msg = (uploadResult.UploadSucceeded ? "Upload complete" : "Upload failed");
}
catch (ServiceException ex)
{
_Msg = ($"Error uploading: {ex.ToString()}");
}
//--------------------------------------------------------Big Attachments Ends---------------------------------------------
//send the Draft
graphClient.Users[objectID].Messages[savedDraft.Id].Send.PostAsync().GetAwaiter().GetResult();
return _Msg + " send: succeed";
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78979749/iprogress-doesnt-functioning-in-ms-graph[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия