📄 mailserv.h
字号:
#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(P128)
#endif
/*********************************************************************/
/* */
/* Licensed Materials - Property of IBM */
/* */
/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
/* */
/* US Government Users Restricted Rights - Use, duplication or */
/* disclosure restricted by GSA ADP Schedule Contract with */
/* IBM Corp. */
/* */
/*********************************************************************/
#ifndef MAILSERV_DEFS
#define MAILSERV_DEFS
/* Mail service package definitions */
#ifndef DARRAY_DEFS
#include "darray.h" /* Dynamic array definitions */
#endif
#ifndef POOL_DEFS
#include "pool.h" /* BLOCK definition */
#endif
#ifndef NSF_DATA_DEFS
#include "nsfdata.h" /* DBHANDLE definition */
#endif
#ifndef NLS_H
#include "nls.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Mail delivery priorities. Note: order is assumed. */
#define DELIVERY_PRIORITY_LOW 0
#define DELIVERY_PRIORITY_NORMAL 1
#define DELIVERY_PRIORITY_HIGH 2
/* Mail delivery report requests. Note: order is assumed. */
#define DELIVERY_REPORT_NONE 0
#define DELIVERY_REPORT_BASIC 1
#define DELIVERY_REPORT_CONFIRMED 2
#define DELIVERY_REPORT_TRACE 3
#define DELIVERY_REPORT_TRACE_NO_DELIVER 4
#define DELIVERY_REPORT_CONFIRM_NO_DELIVER 5
/* Mail delivery time constants. */
#define DELIVERY_HOUR 3600
#define DELIVERY_MINUTE 60
#define DELIVERY_MESSAGE_SIZE 1024
/* Message types - Returned by MailGetMessageType. Note: order is assumed. */
#define MAIL_MESSAGE_UNKNOWN 0
#define MAIL_MESSAGE_MEMO 1
#define MAIL_MESSAGE_DELIVERYREPORT 2
#define MAIL_MESSAGE_NONDELIVERYREPORT 3
#define MAIL_MESSAGE_RETURNRECEIPT 4
#define MAIL_MESSAGE_PHONEMESSAGE 5
#define MAIL_MESSAGE_TRACEREPORT 6
#define MAIL_MESSAGE_NOTICE 7
#define MAIL_MESSAGE_QUOTAREPORT 8
/* MailFindNextHopToRecipientExt Flags */
#define MAIL_LOOKUP_NONUNIQUE_CHECK_R4 0x00000001
#define MAIL_LOOKUP_NODIRCAT 0x00000002
/* Address file functions */
STATUS LNPUBLIC MailGetDomainName(char far *Domain);
STATUS LNPUBLIC MailLookupAddress(char far *UserName,
char far *MailAddress);
STATUS LNPUBLIC MailLookupUser(char far *UserName,
char far *FullName,
char far *MailServerName, char far *MailFileName,
char far *MailAddress, char far *ShortName);
/* Message mailing functions */
STATUS LNPUBLIC MailGetMessageItem (HANDLE hMessage, WORD ItemCode,
char far *retString, WORD StringSize, WORD far *retStringLength);
STATUS LNPUBLIC MailGetMessageItemHandle (HANDLE hMessage, WORD ItemCode,
BLOCKID far *retbhValue, WORD far *retValueType, DWORD far *retValueLength);
STATUS LNPUBLIC MailGetMessageItemTimeDate (HANDLE hMessage, WORD ItemCode,
TIMEDATE far *retTimeDate);
STATUS LNPUBLIC MailCreateMessage (DBHANDLE hFile, HANDLE far *rethMessage);
STATUS LNPUBLIC MailAddHeaderItem (HANDLE hMessage, WORD ItemCode,
const void far *Value, WORD ValueLength);
STATUS LNPUBLIC MailAddHeaderItemByHandle (HANDLE hMessage, WORD ItemCode,
HANDLE hValue, WORD ValueLength,
WORD ItemFlags);
STATUS LNPUBLIC MailReplaceHeaderItem (HANDLE hMessage, WORD ItemCode,
const void far *Value, WORD ValueLength);
STATUS LNPUBLIC MailCreateBodyItem (HANDLE far *rethBodyItem, DWORD far *retBodyLength);
STATUS LNPUBLIC MailAppendBodyItemLine (HANDLE hBodyItem, DWORD far *BodyLength,
char far *Text, WORD TextLength);
STATUS LNPUBLIC MailAddBodyItemExt(HANDLE hMessage, HANDLE hBodyItem,
DWORD BodyLength, NLS_PINFO pInfo);
STATUS LNPUBLIC MailAddRecipientsItem (HANDLE hMessage,
HANDLE hRecipientsItem, WORD RecipientsLength);
STATUS LNPUBLIC MailTransferMessageLocal (HANDLE hMessage);
BOOL LNPUBLIC MailIsNonDeliveryReport (HANDLE hMessage);
BOOL LNPUBLIC MailIsNotToBeHeld (HANDLE hMessage);
WORD LNPUBLIC MailGetMessageType (HANDLE hMessage);
STATUS LNPUBLIC MailCloseMessage (HANDLE hMessage);
STATUS LNPUBLIC MailExpandNames(HANDLE hWorkList,
WORD WorkListSize,
HANDLE far *hOutputList,
WORD far *OutputListSize,
BOOL UseExpanded,
HANDLE hRecipsExpanded);
STATUS LNVARARGS MailLogEvent (WORD Flags, STATUS StringID,
HMODULE hModule, STATUS AdditionalErrorCode, ...);
STATUS LNVARARGS MailLogEventText (WORD Flags, char *String,
HMODULE hModule, STATUS AdditionalErrorCode, ...);
/* Mail event logging flags */
#define MAIL_LOG_TO_MISCEVENTS 0x0001 /* Log message to Miscellaneuos Events view */
#define MAIL_LOG_TO_MAILEVENTS 0x0002 /* Log message to Mail Events view */
#define MAIL_LOG_TO_EVENTS_ONLY 0x0004 /* Don't log messages to console */
#define MAIL_LOG_FORMATTED_TEXT 0x0008 /* Text already formatted */
#define MAIL_LOG_TO_BOTH (MAIL_LOG_TO_MAILEVENTS | MAIL_LOG_TO_MISCEVENTS)
/* Message attachment handling functions */
BOOL LNPUBLIC MailGetMessageAttachmentInfo (HANDLE hMessage,
WORD Num, BLOCKID far *bhItem,
char far *FileName, DWORD far *FileSize,
WORD far *FileAttributes, WORD far *FileHostType,
TIMEDATE far *FileCreated, TIMEDATE far *FileModified);
STATUS LNPUBLIC MailExtractMessageAttachment (HANDLE hMessage,
BLOCKID bhItem, char far *FileName);
STATUS LNPUBLIC MailAddMessageAttachment (HANDLE hMessage,
char far *FileName, char far *OriginalFileName);
/* Message file functions */
STATUS LNPUBLIC MailOpenMessageFile (char far *FileName, DBHANDLE far *rethFile);
STATUS LNPUBLIC MailCreateMessageFile (char far *FileName, char far *TemplateFileName,
char far *Title, DBHANDLE far *rethFile);
STATUS LNPUBLIC MailPurgeMessageFile (DBHANDLE hFile);
STATUS LNPUBLIC MailCloseMessageFile (DBHANDLE hFile);
STATUS LNPUBLIC MailGetMessageFileModifiedTime (DBHANDLE hFile, TIMEDATE far *retModifiedTime);
/* Message list functions */
STATUS LNPUBLIC MailCreateMessageList (DBHANDLE hFile,
HANDLE far *hMessageList,
DARRAY far * far *MessageList, WORD far *MessageCount);
STATUS LNPUBLIC MailFreeMessageList (HANDLE hMessageList, DARRAY far *MessageList);
STATUS LNPUBLIC MailGetMessageInfo (DARRAY far *MessageList, WORD Message,
WORD far *RecipientCount,
WORD far *Priority,
WORD far *Report);
STATUS LNPUBLIC MailGetMessageSize(DARRAY far *MessageList, WORD Message, DWORD far *MessageSize);
STATUS LNPUBLIC MailGetMessageRecipient (DARRAY far *MessageList, WORD Message,
WORD RecipientNum,
char far *RecipientName,
WORD RecipientNameSize,
WORD far *RecipientNameLength);
STATUS LNPUBLIC MailDeleteMessageRecipient (DARRAY far *MessageList, WORD Message,
WORD RecipientNum);
STATUS LNPUBLIC MailGetMessageOriginator (DARRAY far *MessageList, WORD Message,
char far *OriginatorName,
WORD OriginatorNameSize,
WORD far *OriginatorNameLength);
STATUS LNPUBLIC MailGetMessageOriginatorDomain(DARRAY far *MessageList, WORD Message,
char far *OriginatorDomain,
WORD OriginatorDomainSize,
WORD far *OriginatorNameLength);
STATUS LNPUBLIC MailOpenMessage (DARRAY far *MessageList, WORD Message,
HANDLE far *hMessage);
STATUS LNPUBLIC MailGetMessageBody (HANDLE hMessage,
HANDLE far *hBody, DWORD far *BodyLength);
STATUS LNPUBLIC MailGetMessageBodyText(HANDLE hMessage,
char far *ItemName,
char far *LineDelims,
WORD LineLength,
BOOL ConvertTabs,
char far *OutputFileName,
DWORD far *OutputFileSize);
STATUS LNPUBLIC MailGetMessageBodyComposite(HANDLE hMessage,
char far *ItemName,
char far *OutputFileName,
DWORD far *OutputFileSize);
STATUS LNPUBLIC MailAddMessageBodyTextExt(HANDLE hMessage,
char far *ItemName,
char far *InputFileName,
DWORD FontID,
char far *LineDelim,
WORD ParaDelim,
NLS_PINFO pInfo);
STATUS LNPUBLIC MailAddMessageBodyComposite(HANDLE hMessage,
char far *ItemName,
char far *InputFileName);
STATUS LNPUBLIC MailSetMessageLastError (DARRAY far *MessageList, WORD Message,
char far *ErrorText);
STATUS LNPUBLIC MailPurgeMessage (DARRAY far *MessageList, WORD Message);
STATUS LNPUBLIC MailSendNonDeliveryReport (DARRAY far *MessageList, WORD Message,
WORD RecipientNums, WORD far *RecipientNumList,
char far *ReasonText, WORD ReasonTextLength);
STATUS LNPUBLIC MailSendDeliveryReport (DARRAY far *MessageList, WORD Message,
WORD RecipientNums, WORD far *RecipientNumList);
/* Mail address to user and domain name parsing function */
STATUS LNPUBLIC MailParseMailAddress (char far *MailAddress, WORD MailAddressLength,
char far *UserName, WORD UserNameSize, WORD far *UserNameLength,
char far *DomainName, WORD DomainNameSize, WORD far *DomainNameLength);
/* Broadcast newmail recieved message */
void LNPUBLIC MailBroadcastNewMail (char far *MessageText); /* V2 Compatible, NETBIOS-ONLY */
/* Input flags for MailFindNextHopTo* routines */
#define NEXTHOP_CALENDAR 0x00000001 /* Message being routed is a Calendar & Scheduling message */
/* LoadFlags for MailLoadRoutingTablesExt */
#define LOAD_INTERNALSMTP 0x00000001 /* Support internal SMTP transfer thread and DNS */
#define LOAD_EXTERNALSMTP 0x00000002 /* Support SMTP transfer out of local domain */
#define LOAD_USEDNS 0x00000004 /* Use dns when resolving names */
#define LOAD_USEHOSTS 0x00000008 /* Use hosts file when resolving names */
#define LOAD_SERVERREACHABLE 0x00000010 /* need to be in same named network */
#define LOAD_INTERNALSMTPALWAYS 0x00000020 /* Support internal SMTP even for non MIME messages */
#define LOAD_NOSERVERCACHE 0x00000040 /* Disable server cache */
#define LOAD_NODOMAINCACHE 0x00000080 /* Disable domain cache */
#define LOAD_NOFOREIGNSMTPDOMAINS 0x00000100 /* Disable Foreign SMTP Domains when SMTP External enabled */
#define LOAD_NOSKIPDNSQUERY 0x00000200 /* Don't skip the DNS query for domains without a "." */
#define LOAD_ORDERCONNECTIONSBYDEST 0x00000400 /* Order and search connections by destination domain/server name */
#define LOAD_LIMITNRPCROUTING 0x00000800 /* TRUE to limit routing algorithm to smtp external routing logic for internet domains */
STATUS LNPUBLIC MailLoadRoutingTablesExt(DBHANDLE hAddressBook,
char far *LocalServersName,
char far *LocalServersDomain,
char far *LocalServersInternetDomain,
char far *TaskName,
BOOL EnableTrace,
BOOL EnableDebug,
DWORD LoadFlags,
HANDLE far *rethTables);
STATUS LNPUBLIC MailFindNextHopToDomainExt(HANDLE hTables,
char far *OriginatorsDomain,
char far *DestDomain,
DWORD FindFlags,
char far *NextHopServer,
char far *NextHopMailbox,
DWORD far *NextHopFlags,
char far *ErrorServer);
STATUS LNPUBLIC MailLoadRoutingTables(DBHANDLE hAddressBook,
char far *LocalServerName,
char far *LocalDomainDomain,
char far *TaskName,
BOOL EnableTrace,
BOOL EnableDebug,
HANDLE far *rethTables);
STATUS LNPUBLIC MailReloadRoutingTables(HANDLE hTables,
BOOL EnableTrace,
BOOL EnableDebug,
BOOL far *retAddressBookModified);
STATUS LNPUBLIC MailUnloadRoutingTables(HANDLE hTables);
/* Output flags for MailFindNextHopTo* routines */
#define NEXTHOP_INTRANET 0x00000001 /* Next Hop is on same network */
#define NEXTHOP_USESMTP 0x00000004 /* Use SMTP to reach next hop */
STATUS LNPUBLIC MailFindNextHopToDomain(HANDLE hTables,
char far *OriginatorsDomain,
char far *DestDomain,
char far *NextHopServer,
char far *NextHopMailbox,
DWORD far *NextHopFlags,
char far *ErrorServer);
STATUS LNPUBLIC MailFindNextHopToServer(HANDLE hTables,
char far *DestDomain,
char far *DestServer,
char far *NextHopServer,
char far *NextHopMailbox,
DWORD far *NextHopFlags,
WORD far *ActualCost);
typedef enum {MAIL_ERROR, MAIL_TRANSFER,
MAIL_DELIVER, MAIL_FORWARD}
MAIL_ROUTING_ACTIONS;
STATUS LNPUBLIC MailFindNextHopToRecipient(HANDLE hTables,
char far *OriginatorsDomain,
char far *RecipientAddress,
MAIL_ROUTING_ACTIONS far *Action,
char far *NextHopServer,
char far *NextHopMailbox,
char far *ForwardAddress,
char far *ErrorText,
DWORD far *NextHopFlags);
STATUS LNPUBLIC MailFindNextHopToRecipientExt(HANDLE hTables,
char far *OriginatorsDomain,
char far *RecipientAddress,
MAIL_ROUTING_ACTIONS far *Action,
char far *NextHopServer,
char far *NextHopMailbox,
char far *ForwardAddress,
char far *ErrorText,
DWORD far *NextHopFlags,
DWORD lookupFlags);
STATUS LNPUBLIC MailFindNextHopViaRules(HANDLE hTables,
char far *RecipientAddress,
char far *retDestServer,
char far *retDestDomain);
BOOL LNPUBLIC MailSetDynamicCost(HANDLE hTables,
char far *Server,
SWORD CostBias);
BOOL LNPUBLIC MailResetAllDynamicCosts(HANDLE hTables);
#ifdef __cplusplus
}
#endif
#endif /* MAILSERV_DEFS */
#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(pop)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -