MimeKit
과 MailKit
패키지가 프로젝트에 정상적으로 설치되지 않았거나, NuGet 패키지를 빌드할 수 없는 상황이 발생
✅ 1. 패키지 설치 확인
프로젝트 파일 (.csproj
)에 다음이 반드시 있어야 합니다:
<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 없이)
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. 패키지 복원
아래 명령어로 패키지를 복원합니다:
dotnet restore
✅ 4. MailKit 간단한 사용 예시
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("noreply@lycos7560.com")); 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; } } } }
namespace "namespace" { public interface IEmailService { public Task SendEmailAsync(string to, string subject, string body, string mimeType = "plain"); } }
