다음을 통해 공유


전자 메일

샘플을 찾아봅니다. 샘플 찾아보기

이 문서에서는 .NET 다중 플랫폼 앱 UI(.NET MAUI) IEmail 인터페이스를 사용하여 기본 전자 메일 앱을 여는 방법을 설명합니다. 전자 메일 앱이 로드되면 지정된 받는 사람, 제목 및 본문을 사용하여 새 전자 메일을 만들도록 설정할 수 있습니다.

인터페이스의 IEmail 기본 구현은 속성을 통해 Email.Default 사용할 수 있습니다. IEmail 인터페이스와 Email 클래스는 모두 네임스페이스에 Microsoft.Maui.ApplicationModel.Communication 포함됩니다.

시작하기

전자 메일 기능에 액세스하려면 다음 플랫폼별 설정이 필요합니다.

프로젝트의 대상 Android 버전이 Android 11(R API 30) 이상으로 설정된 경우 Android의 패키지 표시 유형 요구 사항을 사용하는 쿼리로 Android 매니페스트를 업데이트해야 합니다.

Platforms/Android/AndroidManifest.xml 파일에서 노드에 다음 queries/intent 노드를 manifest 추가합니다.

<queries>
  <intent>
    <action android:name="android.intent.action.SENDTO" />
    <data android:scheme="mailto" />
  </intent>
</queries>

메일 사용

전자 메일 기능은 전자 메일 정보를 메서드에 인수로 제공하여 작동합니다 ComposeAsync . 이 예제에서 EmailMessage 형식은 전자 메일 정보를 나타내는 데 사용됩니다.

if (Email.Default.IsComposeSupported)
{

    string subject = "Hello friends!";
    string body = "It was great to see you last weekend.";
    string[] recipients = new[] { "john@contoso.com", "jane@contoso.com" };

    var message = new EmailMessage
    {
        Subject = subject,
        Body = body,
        BodyFormat = EmailBodyFormat.PlainText,
        To = new List<string>(recipients)
    };

    await Email.Default.ComposeAsync(message);
}

첨부 파일

전자 메일 클라이언트에 제공된 전자 메일을 만들 때 파일 첨부 파일을 추가할 수 있습니다. MIME(파일 형식)가 자동으로 검색되므로 지정할 필요가 없습니다. 일부 메일 클라이언트는 보내는 파일 유형을 제한하거나 첨부 파일을 완전히 차단할 수 있습니다.

EmailMessage.Attachments 컬렉션을 사용하여 전자 메일에 첨부된 파일을 관리합니다.

다음 예제에서는 전자 메일 첨부 파일에 이미지 파일을 추가하는 방법을 보여 줍니다.

if (Email.Default.IsComposeSupported)
{

    string subject = "Hello friends!";
    string body = "It was great to see you last weekend. I've attached a photo of our adventures together.";
    string[] recipients = new[] { "john@contoso.com", "jane@contoso.com" };

    var message = new EmailMessage
    {
        Subject = subject,
        Body = body,
        BodyFormat = EmailBodyFormat.PlainText,
        To = new List<string>(recipients)
    };

    string picturePath = Path.Combine(FileSystem.CacheDirectory, "memories.jpg");

    message.Attachments.Add(new EmailAttachment(picturePath));

    await Email.Default.ComposeAsync(message);
}

플랫폼의 차이점

Android용 모든 전자 메일 클라이언트가 지원 EmailBodyFormat.Html되는 것은 아닙니다. 이를 감지할 방법이 없으므로 전자 메일을 보낼 때 사용하는 EmailBodyFormat.PlainText 것이 좋습니다.