Files
Wino-Mail/Wino.Synchronization/Services/ImapTestService.cs

52 lines
1.6 KiB
C#
Raw Normal View History

2024-04-18 01:44:37 +02:00
using System.IO;
using System.Threading.Tasks;
using Wino.Core.Integration;
using Wino.Domain;
using Wino.Domain.Entities;
using Wino.Domain.Interfaces;
2024-04-18 01:44:37 +02:00
namespace Wino.Core.Services
{
public class ImapTestService : IImapTestService
{
private readonly IPreferencesService _preferencesService;
private readonly IApplicationConfiguration _appInitializerService;
2024-04-18 01:44:37 +02:00
private Stream _protocolLogStream;
public ImapTestService(IPreferencesService preferencesService, IApplicationConfiguration appInitializerService)
2024-04-18 01:44:37 +02:00
{
_preferencesService = preferencesService;
_appInitializerService = appInitializerService;
}
private void EnsureProtocolLogFileExists()
2024-04-18 01:44:37 +02:00
{
// Create new file for protocol logger.
var localAppFolderPath = _appInitializerService.ApplicationDataFolderPath;
2024-04-18 01:44:37 +02:00
var logFile = Path.Combine(localAppFolderPath, Constants.ProtocolLogFileName);
2024-04-18 01:44:37 +02:00
if (File.Exists(logFile))
File.Delete(logFile);
2024-04-18 01:44:37 +02:00
_protocolLogStream = File.Create(logFile);
}
2024-04-18 01:44:37 +02:00
public async Task TestImapConnectionAsync(CustomServerInformation serverInformation)
{
EnsureProtocolLogFileExists();
2024-04-18 01:44:37 +02:00
var clientPool = new ImapClientPool(serverInformation, _protocolLogStream);
2024-04-18 01:44:37 +02:00
using (clientPool)
2024-04-18 01:44:37 +02:00
{
// This call will make sure that everything is authenticated + connected successfully.
var client = await clientPool.GetClientAsync();
clientPool.Release(client);
2024-04-18 01:44:37 +02:00
}
}
}
}