콘텐츠로 이동

수신 우편 삭제

DeleteReceivedMailAsync()를 호출해 수신 우편을 삭제합니다. 수신 우편 삭제는 사용자가 우편함 화면에서 삭제를 선택했을 때나 앱이 만료 우편 정리 정책을 적용할 때 사용합니다.

1. 삭제 대상과 식별자 확인

수신 우편 삭제에는 수신 우편의 식별자인 MailRecipientId를 사용합니다. 발신 우편 삭제에 사용하는 MailId와 다른 값이므로 수신 우편 상세 정보나 수신 우편 목록에서 확인한 값을 그대로 전달해야 합니다. 앱 화면에 최신 상태를 표시하려면 삭제 전에 수신 우편 정보 조회 흐름을 다시 실행해 목록과 상세를 갱신합니다.

만료된 우편

만료된 우편은 기본적으로 삭제 메서드를 별도로 호출하지 않아도 90일 이후에 자동으로 완전 삭제(HARD DELETE)됩니다.

만료된 수신 우편은 만료 시점부터 수신 우편 목록 조회와 수신 우편 상세 정보 조회 결과에서 제외되므로, 서버에 상태를 다시 물어 만료 여부를 판단할 수 없습니다. 대신 목록 조회로 미리 받아 둔 ExpiresAt을 현재 시각과 비교해 앱이 직접 판단하세요. 우편함 화면을 열어 둔 사이에 만료된 우편을 즉시 감추려면, 이미 보유한 MailRecipientId로 삭제 메서드를 호출하면 됩니다.

첨부 아이템이 있는 우편

첨부 아이템이 있는 우편도 삭제 메서드로 삭제합니다. 단, Hive Axyl은 첨부 아이템 수령 상태를 표시하는 기능만 제공합니다. 그 외에 실제 첨부 아이템 저장, 보관, 삭제, 회수, 수령 등 첨부 아이템을 다루는 모든 기능은 앱에서 직접 구현해야 합니다.

2. 수신 우편 삭제

Method

DeleteReceivedMailAsync

DeleteReceivedMailAsync()의 삭제 처리 결과는 반환 객체로 전달되며, 성공 시 삭제된 MailRecipientId와 원본 MailId, 삭제 시각이 함께 반환됩니다.

삭제 수명 주기

삭제 메서드를 호출하면 수신 우편은 먼저 우편함 화면에서 보이지 않도록 임시 삭제(SOFT DELETE) 상태로 전환됩니다. 삭제 표시된 데이터는 서버 보관 정책에 따라 유지되다가 90일 이후에 자동으로 완전 삭제(HARD DELETE)됩니다.

호출 파라미터

필드명 타입 필수 여부 설명
request DeleteReceivedMailRequest Required 삭제할 수신 우편을 지정하는 요청
context ApiCallContext? Optional 호출 단위 설정 객체입니다. 생략하면 기본값이 사용됩니다.

DeleteReceivedMailRequest

필드명 타입 필수 여부 설명
MailRecipientId string Required 삭제할 수신 우편 식별자. 발신 우편의 MailId와 다른 값입니다.

호출 예시

MailboxDeleteReceivedMailResult의 성공 결과와 이 메서드의 도메인별 결과(Outcome)는 아래 예시와 응답 상태에서 확인합니다. 요청을 수행할 수 없을 때 반환하는 공통 실패(Failure)의 결과 모델과 처리 원칙은 공통 오류 처리를 참조하세요.

using Hive.Axyl.Mailbox;
using Hive.Axyl.Core;

IMailboxService mailbox = HiveCore.Resolve<IMailboxService>();

var result = await mailbox.DeleteReceivedMailAsync(new DeleteReceivedMailRequest {
    MailRecipientId = receivedMailId,
});

switch (result)
{
    case MailboxDeleteReceivedMailResult.Success success:
        DeletedReceivedMailResponseData data = success.Data;
        Debug.Log($"수신 우편 삭제: {data.MailRecipientId} ({data.DeletedAt})");
        break;

    case MailboxDeleteReceivedMailResult.Failure failure:
        HiveError err = failure.Problem;
        Debug.LogError($"[{err.Code}] {err.Message} (trace: {err.TraceId})");
        break;

    default:
        Debug.LogWarning($"처리되지 않은 결과: {result.GetType().Name}");
        break;
}

응답 데이터

성공 시 MailboxDeleteReceivedMailResult.Success의 Data(DeletedReceivedMailResponseData)에 결과가 담깁니다.

세 필드 모두 null을 담을 수 있는 형식으로 선언되어 있으므로, 값을 화면에 표시하거나 다음 호출에 넘기기 전에 null인지 먼저 확인하세요.

필드명 타입 필수 여부 설명
Data.MailRecipientId string? Optional 삭제된 수신 우편 식별자
Data.MailId string? Optional 삭제된 수신 우편에 연결된 원본 발신 우편 식별자
Data.DeletedAt DateTimeOffset? Optional 수신 우편이 삭제된 시각

응답 예시

// success.Data (DeletedReceivedMailResponseData)
string? mailRecipientId = success.Data.MailRecipientId;
string? mailId = success.Data.MailId;
DateTimeOffset? deletedAt = success.Data.DeletedAt;

응답 상태

반환 객체 MailboxDeleteReceivedMailResult는 아래 케이스 중 하나로 분기됩니다. switch 구문으로 처리를 권장합니다.

응답 케이스 설명 앱 클라이언트 대응
Success 수신 우편 삭제에 성공했습니다. 우편함 목록에서 제거
Failure 공통 Failure입니다. 공통 오류 처리를 참조하세요. 공통 오류 처리 기준에 따라 처리
UnknownOutcome 이 SDK 버전이 알지 못하는 신규 결과입니다. 실패로 처리하고 결과 코드를 기록

3. 삭제 결과와 우편 상태 반영

삭제 전에 우편의 본문 읽음 여부나 첨부 아이템 수령 여부를 함께 표시하려면 수신 우편 정보 조회에서 TextReadAt과 AttachmentReadAt을 확인합니다. 본문 읽음 또는 첨부 아이템 수령 상태를 반영해야 하면 우편 읽음 처리도 참조하세요.