MimeKit과 MailKit 패키지 빌드 오류
MimeKit과 MailKit 패키지가 프로젝트에 정상적으로 설치되지 않았거나, NuGet 패키지를 빌드할 수 없는 상황이 발생
✅ 1. 패키지 설치 확인
프로젝트 파일 (.csproj)에 다음이 반드시 있어야 합니다:
plaintext
<ItemGroup>
<PackageReference Include="MimeKit" Version="[버전]" />
<PackageReference Include="MailKit" Version="[버전]" />
</ItemGroup>
예시
<ItemGroup>
<PackageReference Include="MimeKit" Version="4.13.0" />
<PackageReference Include="MailKit" Version="4.13.0" />
</ItemGroup>
- 위 항목이 없다면
.csproj파일에 직접 추가하거나 아래 명령어로 설치
✅ 2. NuGet 패키지 수동 설치 (Visual Studio 없이)
plaintext
dotnet add package MimeKit --version [버전]
dotnet add package MailKit --version [버전]
예시
dotnet add package MimeKit --version 4.13.0
dotnet add package MailKit --version 4.13.0
✅ 3. 패키지 복원
아래 명령어로 패키지를 복원합니다:
plaintext
dotnet restore
✅ 4. MailKit 간단한 사용 예시
csharp
using MimeKit;
using MailKit.Net.Smtp;
using MailKit.Security;
namespace "namespace"
{
public class EmailService : IEmailService
{
private readonly ILogger<EmailService> _logger;
public EmailService(ILogger<EmailService> logger)
{
_logger = logger;
}
public async Task SendEmailAsync(string to, string subject, string body, string mimeType = "plain")
{
var email = new MimeMessage();
email.From.Add(MailboxAddress.Parse("[email protected]"));
email.To.Add(MailboxAddress.Parse(to));
email.Subject = subject;
email.Body = new TextPart(mimeType)
{
Text = body
};
using var smtp = new SmtpClient();
try
{
await smtp.ConnectAsync("localhost", 포트, SecureSocketOptions.None);
await smtp.SendAsync(email);
await smtp.DisconnectAsync(true);
}
catch (Exception ex)
{
_logger.LogError(ex, "메일 전송 실패");
throw;
}
}
}
}
csharp
namespace "namespace"
{
public interface IEmailService
{
public Task SendEmailAsync(string to, string subject, string body, string mimeType = "plain");
}
}