Share via


MAPISENDMAILW 콜백 함수(mapi.h)

유니코드 메시지를 보냅니다. 이 함수는 ANSI 함수 MAPISendMail을 대체합니다.

Windows 7 이전 버전: Windows 8용 Microsoft Windows SDK(소프트웨어 개발 키트)를 설치하고 MAPISendMailHelper를 사용하여 메시지를 보냅니다.

달리 지정하지 않는 한 모든 정보는 MAPISendMailWMAPISendMail 모두에 적용됩니다.

구문

MAPISENDMAILW Mapisendmailw;

ULONG Mapisendmailw(
  [in] LHANDLE lhSession,
  [in] ULONG_PTR ulUIParam,
  [in] lpMapiMessageW lpMessage,
  [in] FLAGS flFlags,
       ULONG ulReserved
)
{...}

매개 변수

[in] lhSession

형식: LHANDLE

단순 MAPI 세션 또는 0에 대한 핸들입니다.

lhSession 매개 변수 값이 0이면 MAPI는 사용자를 로그하고 호출 기간 동안만 존재하는 세션을 만듭니다. 이 임시 세션은 기존 공유 세션 또는 새 세션일 수 있습니다. 필요한 경우 로그온 대화 상자가 표시됩니다.

[in] ulUIParam

형식: ULONG_PTR

부모 창 핸들 또는 0입니다.

ulUIParam 매개 변수에 부모 창 핸들이 포함된 경우 핸들은 HWND 형식(ULONG_PTR 캐스팅)입니다.

호출 중에 대화 상자가 표시되지 않으면 ulUIParam 이 무시됩니다.

[in] lpMessage

형식: lpMapiMessageW

보낼 메시지를 포함하는 MAPISendMailW 구조체에 대한 포인터입니다.

참고MAPISendMail 함수의 경우 이 매개 변수는 MapiMessage 구조를 가리킵니다.
 
함수를 호출할 때 메시지 구조 멤버에 대한 다음 정보를 확인하세요.
멤버 메모
lpFiles 메시지에 파일 첨부 파일이 없는 경우 이 멤버를 NULL 로 설정합니다.
lpszMessageType 대인 관계 메시지를 처리하지 않는 애플리케이션에서 사용됩니다. 애플리케이션이 대인 관계 메시지를 처리하는 경우 lpszMessageType 멤버를 NULL 로 설정하거나 빈 문자열을 가리키도록 설정합니다.
lpszSubject NULL 값은 메시지의 제목에 대한 텍스트가 없음을 의미합니다.
lpszNoteText NULL 값은 메시지 본문에 텍스트가 없음을 의미합니다.
lpRecips NULL 값은 받는 사람이 없음을 의미합니다. 또한 이 멤버가 NULL인 경우 nRecipCount 멤버는 0이어야 합니다.
nRecipCount 값이 0이면 받는 사람이 없음을 의미합니다. 또한 이 멤버가 0이면 lpRecips 멤버가 NULL이어야 합니다.
 
함수를 호출하고 받는 사람이 없는 경우 MAPI_DIALOG 플래그 또는 MAPI_DIALOG_MODELESS 플래그를 설정하여 사용자에게 받는 사람 정보를 묻는 메시지를 표시해야 합니다.
 
MAPI_DIALOG 또는 MAPI_DIALOG_MODELESS 설정되지 않은 경우 구조체의 nRecipCountlpRecips 멤버가 성공적인 메시지 배달에 유효해야 합니다. 클라이언트 애플리케이션은 flFlags 멤버를 MAPI_RECEIPT_REQUESTED 설정하여 읽기 보고서를 요청할 수 있습니다.

함수가 받는 사람 정보를 처리하는 방법에 대한 자세한 내용은 주의에서 받는 사람 정보 처리를 참조 하세요.

[in] flFlags

형식: FLAGS

옵션 플래그의 비트 마스크입니다. 다음 플래그를 설정할 수 있습니다.

의미
MAPI_DIALOG
0x00000008
사용자에게 받는 사람 및 기타 전송 옵션을 묻는 메시지를 표시하려면 애플리케이션 모달 대화 상자가 표시되어야 합니다.

MAPI_DIALOG 또는 MAPI_DIALOG_MODELESS 설정되지 않은 경우 하나 이상의 받는 사람을 지정해야 합니다.

MAPI_DIALOG_MODELESS
0x00000004 | MAPI_DIALOG
다음 버전의 Office를 사용하여 Windows에서 사용할 수 있습니다.

사용자에게 받는 사람 및 기타 전송 옵션을 묻는 메시지를 표시하려면 모덜리스 대화 상자가 표시되어야 합니다.

MAPI_DIALOG_MODELESS 설정되면 lhSession 매개 변수를 0으로 설정해야 합니다. 그렇지 않으면 이 플래그가 설정되고 lhSession 이 0이 아니면 Outlook에서 예외가 발생합니다.

또한 MAPI_DIALOG_MODELESS 설정된 경우 시스템은 MAPI_NEW_SESSION 플래그를 무시합니다.

MAPI_DIALOG 또는 MAPI_DIALOG_MODELESS 설정되지 않은 경우 하나 이상의 받는 사람을 지정해야 합니다.

Windows 7 이하에서 이 플래그를 사용하려면 Windows 8용 Windows SDK와 다음 버전의 Office가 모두 설치되어 있어야 하며 MAPISendMailW 대신 MAPISendMailHelper를 호출해야 합니다.
 
MAPI_LOGON_UI
0x00000001
필요한 경우 사용자에게 로그온하라는 메시지를 표시하는 대화 상자가 표시되어야 합니다.

MAPI_LOGON_UI 플래그가 설정되지 않은 경우 클라이언트 애플리케이션은 로그온 대화 상자를 표시하지 않고 사용자가 로그온하지 않은 경우 오류 값을 반환합니다.

lpszMessageID 매개 변수가 비어 있으면 MAPI_LOGON_UI 플래그가 무시됩니다.

MAPI_NEW_SESSION
0x00000002
환경의 공유 세션을 획득하는 대신 새 세션을 만들려고 합니다. MAPI_NEW_SESSION 플래그가 설정되지 않은 경우 함수는 기존 공유 세션을 사용합니다.

MAPI_NEW_SESSION 플래그를 설정하고(공유 세션 사용 방지) 프로필에 암호가 필요한 경우 MAPI_LOGON_UI 플래그도 설정해야 합니다. 그렇지 않으면 함수가 실패합니다. 클라이언트 애플리케이션은 암호 없이 기본 프로필을 사용하거나 암호 없이 명시적 프로필을 사용하여 이 오류를 방지할 수 있습니다.

MAPI_FORCE_UNICODE
0x00040000
공급자가 유니코드를 지원하지 않는 경우 메시지를 ANSI로 변환하지 마세요.
참고 이 플래그는 MAPISendMailW 에만 사용할 수 있습니다.
 

ulReserved

형식: ULONG

예약; 는 0이어야 합니다.

반환 값

형식: ULONG

이 함수는 다음 값 중 하나를 반환합니다.

반환 코드/값 설명
MAPI_E_AMBIGUOUS_RECIPIENT
21
받는 사람이 받는 사람 설명자 구조 중 하나 이상과 일치했으며 MAPI_DIALOG 설정되지 않았습니다. 메시지가 전송되지 않았습니다.
MAPI_E_ATTACHMENT_NOT_FOUND
11
지정한 첨부 파일을 찾을 수 없습니다. 메시지가 전송되지 않았습니다.
MAPI_E_ATTACHMENT_OPEN_FAILURE
12
지정한 첨부 파일을 열 수 없습니다. 메시지가 전송되지 않았습니다.
MAPI_E_ATTACHMENT_TOO_LARGE
28
지정한 첨부 파일이 너무 큽 메시지가 전송되지 않았습니다.
MAPI_E_BAD_RECIPTYPE
15
받는 사람 유형이 MAPI_TO, MAPI_CC 또는 MAPI_BCC 아닙니다. 메시지가 전송되지 않았습니다.
MAPI_E_FAILURE
2
지정되지 않은 오류가 하나 이상 발생했습니다. 메시지가 전송되지 않았습니다.
MAPI_E_INSUFFICIENT_MEMORY
5
진행할 메모리가 부족했습니다. 메시지가 전송되지 않았습니다.
MAPI_E_INVALID_RECIPS
25
하나 이상의 받는 사람이 잘못되었거나 주소에 resolve 않았습니다.
MAPI_E_LOGIN_FAILURE
3
기본 로그온이 없었고 로그온 대화 상자가 표시되었을 때 사용자가 로그온하지 못했습니다. 메시지가 전송되지 않았습니다.
MAPI_E_TEXT_TOO_LARGE
18
메시지의 텍스트가 너무 큽 메시지가 전송되지 않았습니다.
MAPI_E_TOO_MANY_FILES
9
첨부 파일이 너무 많았습니다. 메시지가 전송되지 않았습니다.
MAPI_E_TOO_MANY_RECIPIENTS
10
받는 사람이 너무 많았습니다. 메시지가 전송되지 않았습니다.
MAPI_E_UNICODE_NOT_SUPPORTED
27
MAPI_FORCE_UNICODE 플래그가 지정되고 유니코드가 지원되지 않습니다.
참고 이 값은 MAPISendMailW 에서만 반환할 수 있습니다.
 
MAPI_E_UNKNOWN_RECIPIENT
14
받는 사람이 주소 목록에 나타나지 않았습니다. 메시지가 전송되지 않았습니다.
MAPI_E_USER_ABORT
1
사용자가 대화 상자 중 하나를 취소했습니다. 메시지가 전송되지 않았습니다.
SUCCESS_SUCCESS
0
호출이 성공하고 메시지가 전송되었습니다.

설명

MAPISendMailW(유니코드) 및 ANSI(MAPISendMail) 함수는 모두 사용자 상호 작용을 포함하거나 사용하지 않고 표준 메시지를 보냅니다. 두 함수가 사용자 상호 작용 없이 기본 서비스 공급자를 열 수 있도록 프로필을 구성해야 합니다.

MAPISendMailW 또는 MAPISendMail 모두 메시지를 보내기 위해 보낸 사람 유형 받는 사람이 필요하지 않습니다.

클라이언트 애플리케이션은 받는 사람 이름, 제목 텍스트, 파일 첨부 파일 또는 메시지 텍스트의 전체 또는 부분 목록을 제공할 수 있습니다. 정보가 누락된 경우 호출하는 함수( MAPISendMailW 또는 MAPISendMail)는 사용자에게 누락된 정보를 묻는 메시지를 표시할 수 있습니다.

정보가 누락되지 않은 경우 메시지를 있는 그대로 보내거나 필요한 경우 정보를 확인하고 값을 변경하라는 메시지가 사용자에게 표시될 수 있습니다.

MAPISendMailWMAPISendMail은 모두 메시지 생성에 더 큰 유연성을 허용한다는 점에서 MAPISendDocuments 함수와 다릅니다.

메시지 텍스트

일부 클라이언트 애플리케이션은 너무 길거나 캐리지 리턴, 줄 바꿈 또는 양식 피드를 포함하는 제목 줄을 잘라낼 수 있습니다.

각 단락은 CR(0x0d), LF(0x0a) 또는 CRLF 쌍(0x0d0a)으로 종료되어야 합니다. MAPISendMailWMAPISendMail 줄 바꿈이 모두 적절합니다.

텍스트가 시스템 제한을 초과하면 함수는 MAPI_E_TEXT_TOO_LARGE 값을 반환합니다.

파일 첨부 파일

메시지당 첨부 파일 수는 일부 메시징 시스템에서 제한될 수 있습니다. 이 제한을 초과하면 함수가 실패하고 MAPI_E_TOO_MANY_FILES 값을 반환합니다.

파일 첨부 파일은 함수가 반환되기 전에 메시지에 복사됩니다. 따라서 나중에 파일을 변경해도 메시지 내용에 영향을 미치지 않습니다. 파일을 복사할 때 닫아야 합니다.

메시지 텍스트 범위 밖에 첨부 파일을 표시하지 마세요.

받는 사람

일부 메시징 시스템은 메시지당 받는 사람 수를 제한할 수 있습니다. 클라이언트 애플리케이션이 시스템 제한을 초과하는 수신자 수를 나타내는 NULL 이 아닌 값을 전달하면 함수가 실패하고 MAPI_E_TOO_MANY_RECIPIENTS 값을 반환합니다.

클라이언트 애플리케이션이 하나 이상의 사용자 지정 받는 사람에게 메시지를 보내고 해당 받는 사람의 이름을 해결하지 않으려면 사용자 지정 받는 사람의 주소를 지정해야 합니다.

MAPISendMailW를 호출할 때 받는 사람의 주소를 지정하려면 받는 사람의 정보를 포함하는 MapiRecipDescW 구조체의 lpszAddress 멤버를 사용자 지정 주소로 설정해야 합니다. 이 MapiRecipDescW 구조체는 lpMessage 매개 변수에 의해 함수에 전달되는 MapiMessageW 구조체의 lpRecips 멤버에 저장된 받는 사람 배열에 포함됩니다.

참고MAPISendMail을 호출할 때 받는 사람의 주소를 지정하려면 MAPISendMailW에 대한 이전 지침을 따르지만 MapiRecipDescMapiMessage 구조체로 대체합니다.

 

함수의 성공적인 반환이 반드시 받는 사람 유효성 검사를 의미하지는 않습니다. 메시지가 모든 받는 사람에게 전송되지 않았을 수 있습니다. 전송 공급자에 따라 받는 사람 유효성 검사는 긴 프로세스가 될 수 있습니다.

받는 사람 정보 처리

MapiMessageW 또는 MapiMessage 구조의 lpRecips 멤버에는 항목 식별자, 받는 사람 이름, 주소 또는 이름 및 주소 쌍이 포함될 수 있습니다. 다음 표에서는 함수가 각 사례를 처리하는 방법을 보여 줍니다.
받는 사람 정보 작업
항목 식별자 이름 확인 없음; 이름 및 주소는 무시됩니다.
Name 단순 MAPI 확인 규칙을 사용하여 이름이 확인되었습니다.
주소 이름 확인 없음; 주소는 메시지 배달과 받는 사람 이름을 표시하는 데 사용됩니다.
이름 및 주소 이름 확인 없음; 받는 사람 이름을 표시하는 데만 사용되는 이름입니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mapi.h

참고 항목

MAPISendMailHelper

Windows 8용 Windows SDK