다음을 통해 공유


Xamarin.Essentials이메일:

Email 클래스를 사용하면 애플리케이션이 제목, 본문 및 받는 사람(받는 사람, 참조, 숨은 참조)을 포함한 지정된 정보를 사용하여 기본 메일 애플리케이션을 열 수 있습니다.

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

프로젝트의 대상 Android 버전이 Android 11(R API 30)로 설정된 경우 새 패키지 가시성 요구 사항에 사용되는 쿼리로 해당 Android 매니페스트를 업데이트해야 합니다.

속성 폴더 아래의 AndroidManifest.xml 파일을 열고 매니페스트 노드 내부에 다음을 추가합니다.

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

시작하기

이 API를 사용하기 전에 라이브러리가 제대로 설치되고 프로젝트에 설정되어 있는지 확인하기 위해 Xamarin.Essentials에 대한 시작 가이드를 읽어보세요.

iOS에서 Email API를 사용하려면 물리적 디바이스에서 실행해야 하며, 예외는 throw됩니다.

메일 사용

클래스에서 Xamarin.Essentials에 대한 참조를 추가합니다.

using Xamarin.Essentials;

전자 메일 기능은 전자 메일에 ComposeAsync 대한 정보가 포함된 메서드를 EmailMessage 호출하여 작동합니다.

public class EmailTest
{
    public async Task SendEmail(string subject, string body, List<string> recipients)
    {
        try
        {
            var message = new EmailMessage
            {
                Subject = subject,
                Body = body,
                To = recipients,
                //Cc = ccRecipients,
                //Bcc = bccRecipients
            };
            await Email.ComposeAsync(message);
        }
        catch (FeatureNotSupportedException fbsEx)
        {
            // Email is not supported on this device
        }
        catch (Exception ex)
        {
            // Some other exception occurred
        }
    }
}

첨부 파일

이 기능을 통해 앱이 디바이스의 전자 메일 클라이언트에 있는 파일을 전자 메일로 보낼 수 있습니다. Xamarin.Essentials는 자동으로 파일 형식(MIME)을 검색하고 파일을 첨부 파일로 추가하도록 요청합니다. 모든 전자 메일 클라이언트는 서로 다르며 특정 파일 확장명만 지원하거나 전혀 지원하지 않을 수 있습니다.

다음은 디스크에 텍스트를 쓰고 이메일 첨부 파일로 추가하는 샘플입니다.

var message = new EmailMessage
{
    Subject = "Hello",
    Body = "World",
};

var fn = "Attachment.txt";
var file = Path.Combine(FileSystem.CacheDirectory, fn);
File.WriteAllText(file, "Hello World");

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

await Email.ComposeAsync(message);

플랫폼의 차이점

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

API

Channel 9YouTube에서 더 많은 Xamarin 비디오를 확인하세요.