50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
#if NET
|
|
using DigitalData.MessagingService.Application.Common.Dto;
|
|
using DigitalData.MessagingService.Domain.Entities;
|
|
|
|
namespace DigitalData.MessagingService.Application.Common.Interfaces;
|
|
|
|
/// <summary>
|
|
/// Service interface for reading emails via IMAP.
|
|
/// </summary>
|
|
public interface IImapEmailService
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="account"></param>
|
|
/// <param name="folder"></param>
|
|
/// <param name="cancel"></param>
|
|
/// <returns></returns>
|
|
Task<EmailSyncResult> SyncEmailsAsync(
|
|
EmailAccount account,
|
|
string folder = "INBOX",
|
|
CancellationToken cancel = default);
|
|
|
|
/// <summary>
|
|
/// Marks a message as seen (read) on the server.
|
|
/// </summary>
|
|
Task MarkAsSeenAsync(
|
|
EmailAccount account,
|
|
long uid,
|
|
string folder = "INBOX",
|
|
CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Gets the last IMAP sync date for the specified account and folder.
|
|
/// </summary>
|
|
/// <param name="accountId"></param>
|
|
/// <param name="folder"></param>
|
|
/// <returns></returns>
|
|
DateTime? GetLastImapSyncDate(int accountId, string folder = "INBOX");
|
|
|
|
/// <summary>
|
|
/// Sends an email via SMTP using the account credentials and appends the sent message
|
|
/// to the account's IMAP Sent Items folder.
|
|
/// </summary>
|
|
Task SendAndAppendAsync(
|
|
EmailContext context,
|
|
string sentFolder = "Sent",
|
|
CancellationToken cancellationToken = default);
|
|
}
|
|
#endif |