tnef

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2024 License: MIT Imports: 9 Imported by: 0

README

Go GoDoc CodeQL

With this library you can extract the body and attachments from Transport Neutral Encapsulation Format (TNEF) files.

This work is based on https://github.com/koodaamo/tnefparse, http://www.freeutils.net/source/jtnef/, https://github.com/teamwork/tnef and https://github.com/verdammelt/tnef.

Example usage

package main

import (
	"os"

	"github.com/uponus/tnef"
)

func main() {
	t, err := tnef.DecodeFile("./winmail.dat")
	if err != nil {
		return
	}
	wd, _ := os.Getwd()
	for _, a := range t.Attachments {
		os.WriteFile(wd+"/"+a.Title, a.Data, 0777)
	}

	htmlBody, found := tnef.AttributeByMAPIName(t.MAPIAttributes, tnef.MAPIBodyHTML)
	if found {
		os.WriteFile(wd+"/bodyHTML.html", htmlBody.Data, 0777)
	}

	txtBody, found := tnef.AttributeByMAPIName(t.MAPIAttributes, tnef.MAPIBody)
	if found {
		os.WriteFile(wd+"/bodyTxt.html", txtBody.Data, 0777)
	}
}

Documentation

Overview

Package tnef extracts the body and attachments from Microsoft TNEF files.

Index

Constants

View Source
const (
	MAPIAcknowledgementMode                   = 0x0001
	MAPIAlternateRecipientAllowed             = 0x0002
	MAPIAuthorizingUsers                      = 0x0003
	MAPIAutoForwardComment                    = 0x0004
	MAPIAutoForwarded                         = 0x0005
	MAPIContentConfidentialityAlgorithmID     = 0x0006
	MAPIContentCorrelator                     = 0x0007
	MAPIContentIdentifier                     = 0x0008
	MAPIContentLength                         = 0x0009
	MAPIContentReturnRequested                = 0x000A
	MAPIConversationKey                       = 0x000B
	MAPIConversionEits                        = 0x000C
	MAPIConversionWithLossProhibited          = 0x000D
	MAPIConvertedEits                         = 0x000E
	MAPIDeferredDeliveryTime                  = 0x000F
	MAPIDeliverTime                           = 0x0010
	MAPIDiscardReason                         = 0x0011
	MAPIDisclosureOfRecipients                = 0x0012
	MAPIDlExpansionHistory                    = 0x0013
	MAPIDlExpansionProhibited                 = 0x0014
	MAPIExpiryTime                            = 0x0015
	MAPIImplicitConversionProhibited          = 0x0016
	MAPIImportance                            = 0x0017
	MAPIIpmID                                 = 0x0018
	MAPILatestDeliveryTime                    = 0x0019
	MAPIMessageClass                          = 0x001A
	MAPIMessageDeliveryID                     = 0x001B
	MAPIMessageSecurityLabel                  = 0x001E
	MAPIObsoletedIpms                         = 0x001F
	MAPIOriginallyIntendedRecipientName       = 0x0020
	MAPIOriginalEits                          = 0x0021
	MAPIOriginatorCertificate                 = 0x0022
	MAPIOriginatorDeliveryReportRequested     = 0x0023
	MAPIOriginatorReturnAddress               = 0x0024
	MAPIParentKey                             = 0x0025
	MAPIPriority                              = 0x0026
	MAPIOriginCheck                           = 0x0027
	MAPIProofOfSubmissionRequested            = 0x0028
	MAPIReadReceiptRequested                  = 0x0029
	MAPIReceiptTime                           = 0x002A
	MAPIRecipientReassignmentProhibited       = 0x002B
	MAPIRedirectionHistory                    = 0x002C
	MAPIRelatedIpms                           = 0x002D
	MAPIOriginalSensitivity                   = 0x002E
	MAPILanguages                             = 0x002F
	MAPIReplyTime                             = 0x0030
	MAPIReportTag                             = 0x0031
	MAPIReportTime                            = 0x0032
	MAPIReturnedIpm                           = 0x0033
	MAPISecurity                              = 0x0034
	MAPIIncompleteCopy                        = 0x0035
	MAPISensitivity                           = 0x0036
	MAPISubject                               = 0x0037
	MAPISubjectIpm                            = 0x0038
	MAPIClientSubmitTime                      = 0x0039
	MAPIReportName                            = 0x003A
	MAPISentRepresentingSearchKey             = 0x003B
	MAPIX400ContentType                       = 0x003C
	MAPISubjectPrefix                         = 0x003D
	MAPINonReceiptReason                      = 0x003E
	MAPIReceivedByEntryID                     = 0x003F
	MAPIReceivedByName                        = 0x0040
	MAPISentRepresentingEntryID               = 0x0041
	MAPISentRepresentingName                  = 0x0042
	MAPIRcvdRepresentingEntryID               = 0x0043
	MAPIRcvdRepresentingName                  = 0x0044
	MAPIReportEntryID                         = 0x0045
	MAPIReadReceiptEntryID                    = 0x0046
	MAPIMessageSubmissionID                   = 0x0047
	MAPIProviderSubmitTime                    = 0x0048
	MAPIOriginalSubject                       = 0x0049
	MAPIDiscVal                               = 0x004A
	MAPIOrigMessageClass                      = 0x004B
	MAPIOriginalAuthorEntryID                 = 0x004C
	MAPIOriginalAuthorName                    = 0x004D
	MAPIOriginalSubmitTime                    = 0x004E
	MAPIReplyRecipientEntries                 = 0x004F
	MAPIReplyRecipientNames                   = 0x0050
	MAPIReceivedBySearchKey                   = 0x0051
	MAPIRcvdRepresentingSearchKey             = 0x0052
	MAPIReadReceiptSearchKey                  = 0x0053
	MAPIReportSearchKey                       = 0x0054
	MAPIOriginalDeliveryTime                  = 0x0055
	MAPIOriginalAuthorSearchKey               = 0x0056
	MAPIMessageToMe                           = 0x0057
	MAPIMessageCcMe                           = 0x0058
	MAPIMessageRecipMe                        = 0x0059
	MAPIOriginalSenderName                    = 0x005A
	MAPIOriginalSenderEntryID                 = 0x005B
	MAPIOriginalSenderSearchKey               = 0x005C
	MAPIOriginalSentRepresentingName          = 0x005D
	MAPIOriginalSentRepresentingEntryID       = 0x005E
	MAPIOriginalSentRepresentingSearchKey     = 0x005F
	MAPIStartDate                             = 0x0060
	MAPIEndDate                               = 0x0061
	MAPIOwnerApptID                           = 0x0062
	MAPIResponseRequested                     = 0x0063
	MAPISentRepresentingAddrtype              = 0x0064
	MAPISentRepresentingEmailAddress          = 0x0065
	MAPIOriginalSenderAddrtype                = 0x0066
	MAPIOriginalSenderEmailAddress            = 0x0067
	MAPIOriginalSentRepresentingAddrtype      = 0x0068
	MAPIOriginalSentRepresentingEmailAddress  = 0x0069
	MAPIConversationTopic                     = 0x0070
	MAPIConversationIndex                     = 0x0071
	MAPIOriginalDisplayBcc                    = 0x0072
	MAPIOriginalDisplayCc                     = 0x0073
	MAPIOriginalDisplayTo                     = 0x0074
	MAPIReceivedByAddrtype                    = 0x0075
	MAPIReceivedByEmailAddress                = 0x0076
	MAPIRcvdRepresentingAddrtype              = 0x0077
	MAPIRcvdRepresentingEmailAddress          = 0x0078
	MAPIOriginalAuthorAddrtype                = 0x0079
	MAPIOriginalAuthorEmailAddress            = 0x007A
	MAPIOriginallyIntendedRecipAddrtype       = 0x007B
	MAPIOriginallyIntendedRecipEmailAddress   = 0x007C
	MAPITransportMessageHeaders               = 0x007D
	MAPIDelegation                            = 0x007E
	MAPITnefCorrelationKey                    = 0x007F
	MAPIBody                                  = 0x1000
	MAPIBodyHTML                              = 0x1013
	MAPIReportText                            = 0x1001
	MAPIOriginatorAndDlExpansionHistory       = 0x1002
	MAPIReportingDlName                       = 0x1003
	MAPIReportingMtaCertificate               = 0x1004
	MAPIRtfSyncBodyCrc                        = 0x1006
	MAPIRtfSyncBodyCount                      = 0x1007
	MAPIRtfSyncBodyTag                        = 0x1008
	MAPIRtfCompressed                         = 0x1009
	MAPIRtfSyncPrefixCount                    = 0x1010
	MAPIRtfSyncTrailingCount                  = 0x1011
	MAPIOriginallyIntendedRecipEntryID        = 0x1012
	MAPIContentIntegrityCheck                 = 0x0C00
	MAPIExplicitConversion                    = 0x0C01
	MAPIIpmReturnRequested                    = 0x0C02
	MAPIMessageToken                          = 0x0C03
	MAPINdrReasonCode                         = 0x0C04
	MAPINdrDiagCode                           = 0x0C05
	MAPINonReceiptNotificationRequested       = 0x0C06
	MAPIDeliveryPoint                         = 0x0C07
	MAPIOriginatorNonDeliveryReportRequested  = 0x0C08
	MAPIOriginatorRequestedAlternateRecipient = 0x0C09
	MAPIPhysicalDeliveryBureauFaxDelivery     = 0x0C0A
	MAPIPhysicalDeliveryMode                  = 0x0C0B
	MAPIPhysicalDeliveryReportRequest         = 0x0C0C
	MAPIPhysicalForwardingAddress             = 0x0C0D
	MAPIPhysicalForwardingAddressRequested    = 0x0C0E
	MAPIPhysicalForwardingProhibited          = 0x0C0F
	MAPIPhysicalRenditionAttributes           = 0x0C10
	MAPIProofOfDelivery                       = 0x0C11
	MAPIProofOfDeliveryRequested              = 0x0C12
	MAPIRecipientCertificate                  = 0x0C13
	MAPIRecipientNumberForAdvice              = 0x0C14
	MAPIRecipientType                         = 0x0C15
	MAPIRegisteredMailType                    = 0x0C16
	MAPIReplyRequested                        = 0x0C17
	MAPIRequestedDeliveryMethod               = 0x0C18
	MAPISenderEntryID                         = 0x0C19
	MAPISenderName                            = 0x0C1A
	MAPISupplementaryInfo                     = 0x0C1B
	MAPITypeOfMtsUser                         = 0x0C1C
	MAPISenderSearchKey                       = 0x0C1D
	MAPISenderAddrtype                        = 0x0C1E
	MAPISenderEmailAddress                    = 0x0C1F
	MAPICurrentVersion                        = 0x0E00
	MAPIDeleteAfterSubmit                     = 0x0E01
	MAPIDisplayBcc                            = 0x0E02
	MAPIDisplayCc                             = 0x0E03
	MAPIDisplayTo                             = 0x0E04
	MAPIParentDisplay                         = 0x0E05
	MAPIMessageDeliveryTime                   = 0x0E06
	MAPIMessageFlags                          = 0x0E07
	MAPIMessageSize                           = 0x0E08
	MAPIParentEntryID                         = 0x0E09
	MAPISentmailEntryID                       = 0x0E0A
	MAPICorrelate                             = 0x0E0C
	MAPICorrelateMtsID                        = 0x0E0D
	MAPIDiscreteValues                        = 0x0E0E
	MAPIResponsibility                        = 0x0E0F
	MAPISpoolerStatus                         = 0x0E10
	MAPITransportStatus                       = 0x0E11
	MAPIMessageRecipients                     = 0x0E12
	MAPIMessageAttachments                    = 0x0E13
	MAPISubmitFlags                           = 0x0E14
	MAPIRecipientStatus                       = 0x0E15
	MAPITransportKey                          = 0x0E16
	MAPIMsgStatus                             = 0x0E17
	MAPIMessageDownloadTime                   = 0x0E18
	MAPICreationVersion                       = 0x0E19
	MAPIModifyVersion                         = 0x0E1A
	MAPIHasattach                             = 0x0E1B
	MAPIBodyCrc                               = 0x0E1C
	MAPINormalizedSubject                     = 0x0E1D
	MAPIRtfInSync                             = 0x0E1F
	MAPIAttachSize                            = 0x0E20
	MAPIAttachNum                             = 0x0E21
	MAPIPreprocess                            = 0x0E22
	MAPIOriginatingMtaCertificate             = 0x0E25
	MAPIProofOfSubmission                     = 0x0E26
	MAPIEntryID                               = 0x0FFF
	MAPIObjectType                            = 0x0FFE
	MAPIIcon                                  = 0x0FFD
	MAPIMiniIcon                              = 0x0FFC
	MAPIStoreEntryID                          = 0x0FFB
	MAPIStoreRecordKey                        = 0x0FFA
	MAPIRecordKey                             = 0x0FF9
	MAPIMappingSignature                      = 0x0FF8
	MAPIAccessLevel                           = 0x0FF7
	MAPIInstanceKey                           = 0x0FF6
	MAPIRowType                               = 0x0FF5
	MAPIAccess                                = 0x0FF4
	MAPIRowID                                 = 0x3000
	MAPIDisplayName                           = 0x3001
	MAPIAddrtype                              = 0x3002
	MAPIEmailAddress                          = 0x3003
	MAPIComment                               = 0x3004
	MAPIDepth                                 = 0x3005
	MAPIProviderDisplay                       = 0x3006
	MAPICreationTime                          = 0x3007
	MAPILastModificationTime                  = 0x3008
	MAPIResourceFlags                         = 0x3009
	MAPIProviderDllName                       = 0x300A
	MAPISearchKey                             = 0x300B
	MAPIProviderUID                           = 0x300C
	MAPIProviderOrdinal                       = 0x300D
	MAPIFormVersion                           = 0x3301
	MAPIFormClsid                             = 0x3302
	MAPIFormContactName                       = 0x3303
	MAPIFormCategory                          = 0x3304
	MAPIFormCategorySub                       = 0x3305
	MAPIFormHostMap                           = 0x3306
	MAPIFormHidden                            = 0x3307
	MAPIFormDesignerName                      = 0x3308
	MAPIFormDesignerGuID                      = 0x3309
	MAPIFormMessageBehavior                   = 0x330A
	MAPIDefaultStore                          = 0x3400
	MAPIStoreSupportMask                      = 0x340D
	MAPIStoreState                            = 0x340E
	MAPIIpmSubtreeSearchKey                   = 0x3410
	MAPIIpmOutboxSearchKey                    = 0x3411
	MAPIIpmWastebasketSearchKey               = 0x3412
	MAPIIpmSentmailSearchKey                  = 0x3413
	MAPIMdbProvider                           = 0x3414
	MAPIReceiveFolderSettings                 = 0x3415
	MAPIValidFolderMask                       = 0x35DF
	MAPIIpmSubtreeEntryID                     = 0x35E0
	MAPIIpmOutboxEntryID                      = 0x35E2
	MAPIIpmWastebasketEntryID                 = 0x35E3
	MAPIIpmSentmailEntryID                    = 0x35E4
	MAPIViewsEntryID                          = 0x35E5
	MAPICommonViewsEntryID                    = 0x35E6
	MAPIFinderEntryID                         = 0x35E7
	MAPIContainerFlags                        = 0x3600
	MAPIFolderType                            = 0x3601
	MAPIContentCount                          = 0x3602
	MAPIContentUnread                         = 0x3603
	MAPICreateTemplates                       = 0x3604
	MAPIDetailsTable                          = 0x3605
	MAPISearch                                = 0x3607
	MAPISelectable                            = 0x3609
	MAPISubfolders                            = 0x360A
	MAPIStatus                                = 0x360B
	MAPIAnr                                   = 0x360C
	MAPIContentsSortOrder                     = 0x360D
	MAPIContainerHierarchy                    = 0x360E
	MAPIContainerContents                     = 0x360F
	MAPIFolderAssociatedContents              = 0x3610
	MAPIDefCreateDl                           = 0x3611
	MAPIDefCreateMailuser                     = 0x3612
	MAPIContainerClass                        = 0x3613
	MAPIContainerModifyVersion                = 0x3614
	MAPIAbProviderID                          = 0x3615
	MAPIDefaultViewEntryID                    = 0x3616
	MAPIAssocContentCount                     = 0x3617
	MAPIAttachmentX400Parameters              = 0x3700
	MAPIAttachDataObj                         = 0x3701
	MAPIAttachEncoding                        = 0x3702
	MAPIAttachExtension                       = 0x3703
	MAPIAttachFilename                        = 0x3704
	MAPIAttachMethod                          = 0x3705
	MAPIAttachLongFilename                    = 0x3707
	MAPIAttachPathname                        = 0x3708
	MAPIAttachRendering                       = 0x3709
	MAPIAttachContentId                       = 0x3712
	MAPIAttachTag                             = 0x370A
	MAPIRenderingPosition                     = 0x370B
	MAPIAttachTransportName                   = 0x370C
	MAPIAttachLongPathname                    = 0x370D
	MAPIAttachMimeTag                         = 0x370E
	MAPIAttachAdditionalInfo                  = 0x370F
	MAPIDisplayType                           = 0x3900
	MAPITemplateID                            = 0x3902
	MAPIPrimaryCapability                     = 0x3904
	MAPI7bitDisplayName                       = 0x39FF
	MAPIAccount                               = 0x3A00
	MAPIAlternateRecipient                    = 0x3A01
	MAPICallbackTelephoneNumber               = 0x3A02
	MAPIConversionProhibited                  = 0x3A03
	MAPIDiscloseRecipients                    = 0x3A04
	MAPIGeneration                            = 0x3A05
	MAPIGivenName                             = 0x3A06
	MAPIGovernmentIDNumber                    = 0x3A07
	MAPIBusinessTelephoneNumber               = 0x3A08
	MAPIHomeTelephoneNumber                   = 0x3A09
	MAPIInitials                              = 0x3A0A
	MAPIKeyword                               = 0x3A0B
	MAPILanguage                              = 0x3A0C
	MAPILocation                              = 0x3A0D
	MAPIMailPermission                        = 0x3A0E
	MAPIMhsCommonName                         = 0x3A0F
	MAPIOrganizationalIDNumber                = 0x3A10
	MAPISurname                               = 0x3A11
	MAPIOriginalEntryID                       = 0x3A12
	MAPIOriginalDisplayName                   = 0x3A13
	MAPIOriginalSearchKey                     = 0x3A14
	MAPIPostalAddress                         = 0x3A15
	MAPICompanyName                           = 0x3A16
	MAPITitle                                 = 0x3A17
	MAPIDepartmentName                        = 0x3A18
	MAPIOfficeLocation                        = 0x3A19
	MAPIPrimaryTelephoneNumber                = 0x3A1A
	MAPIBusiness2TelephoneNumber              = 0x3A1B
	MAPIMobileTelephoneNumber                 = 0x3A1C
	MAPIRadioTelephoneNumber                  = 0x3A1D
	MAPICarTelephoneNumber                    = 0x3A1E
	MAPIOtherTelephoneNumber                  = 0x3A1F
	MAPITransmitableDisplayName               = 0x3A20
	MAPIPagerTelephoneNumber                  = 0x3A21
	MAPIUserCertificate                       = 0x3A22
	MAPIPrimaryFaxNumber                      = 0x3A23
	MAPIBusinessFaxNumber                     = 0x3A24
	MAPIHomeFaxNumber                         = 0x3A25
	MAPICountry                               = 0x3A26
	MAPILocality                              = 0x3A27
	MAPIStateOrProvince                       = 0x3A28
	MAPIStreetAddress                         = 0x3A29
	MAPIPostalCode                            = 0x3A2A
	MAPIPostOfficeBox                         = 0x3A2B
	MAPITelexNumber                           = 0x3A2C
	MAPIIsdnNumber                            = 0x3A2D
	MAPIAssistantTelephoneNumber              = 0x3A2E
	MAPIHome2TelephoneNumber                  = 0x3A2F
	MAPIAssistant                             = 0x3A30
	MAPISendRichInfo                          = 0x3A40
	MAPIWeddingAnniversary                    = 0x3A41
	MAPIBirthday                              = 0x3A42
	MAPIHobbies                               = 0x3A43
	MAPIMiddleName                            = 0x3A44
	MAPIDisplayNamePrefix                     = 0x3A45
	MAPIProfession                            = 0x3A46
	MAPIPreferredByName                       = 0x3A47
	MAPISpouseName                            = 0x3A48
	MAPIComputerNetworkName                   = 0x3A49
	MAPICustomerID                            = 0x3A4A
	MAPITtytddPhoneNumber                     = 0x3A4B
	MAPIFtpSite                               = 0x3A4C
	MAPIGender                                = 0x3A4D
	MAPIManagerName                           = 0x3A4E
	MAPINickname                              = 0x3A4F
	MAPIPersonalHomePage                      = 0x3A50
	MAPIBusinessHomePage                      = 0x3A51
	MAPIContactVersion                        = 0x3A52
	MAPIContactEntryids                       = 0x3A53
	MAPIContactAddrtypes                      = 0x3A54
	MAPIContactDefaultAddressIndex            = 0x3A55
	MAPIContactEmailAddresses                 = 0x3A56
	MAPICompanyMainPhoneNumber                = 0x3A57
	MAPIChildrensNames                        = 0x3A58
	MAPIHomeAddressCity                       = 0x3A59
	MAPIHomeAddressCountry                    = 0x3A5A
	MAPIHomeAddressPostalCode                 = 0x3A5B
	MAPIHomeAddressStateOrProvince            = 0x3A5C
	MAPIHomeAddressStreet                     = 0x3A5D
	MAPIHomeAddressPostOfficeBox              = 0x3A5E
	MAPIOtherAddressCity                      = 0x3A5F
	MAPIOtherAddressCountry                   = 0x3A60
	MAPIOtherAddressPostalCode                = 0x3A61
	MAPIOtherAddressStateOrProvince           = 0x3A62
	MAPIOtherAddressStreet                    = 0x3A63
	MAPIOtherAddressPostOfficeBox             = 0x3A64
	MAPIStoreProviders                        = 0x3D00
	MAPIAbProviders                           = 0x3D01
	MAPITransportProviders                    = 0x3D02
	MAPIDefaultProfile                        = 0x3D04
	MAPIAbSearchPath                          = 0x3D05
	MAPIAbDefaultDir                          = 0x3D06
	MAPIAbDefaultPab                          = 0x3D07
	MAPIFilteringHooks                        = 0x3D08
	MAPIServiceName                           = 0x3D09
	MAPIServiceDllName                        = 0x3D0A
	MAPIServiceEntryName                      = 0x3D0B
	MAPIServiceUID                            = 0x3D0C
	MAPIServiceExtraUids                      = 0x3D0D
	MAPIServices                              = 0x3D0E
	MAPIServiceSupportFiles                   = 0x3D0F
	MAPIServiceDeleteFiles                    = 0x3D10
	MAPIAbSearchPathUpdate                    = 0x3D11
	MAPIProfileName                           = 0x3D12
	MAPIIdentityDisplay                       = 0x3E00
	MAPIIdentityEntryID                       = 0x3E01
	MAPIResourceMethods                       = 0x3E02
	MAPIResourceType                          = 0x3E03
	MAPIStatusCode                            = 0x3E04
	MAPIIdentitySearchKey                     = 0x3E05
	MAPIOwnStoreEntryID                       = 0x3E06
	MAPIResourcePath                          = 0x3E07
	MAPIStatusString                          = 0x3E08
	MAPIX400DeferredDeliveryCancel            = 0x3E09
	MAPIHeaderFolderEntryID                   = 0x3E0A
	MAPIRemoteProgress                        = 0x3E0B
	MAPIRemoteProgressText                    = 0x3E0C
	MAPIRemoteValidateOk                      = 0x3E0D
	MAPIControlFlags                          = 0x3F00
	MAPIControlStructure                      = 0x3F01
	MAPIControlType                           = 0x3F02
	MAPIDeltax                                = 0x3F03
	MAPIDeltay                                = 0x3F04
	MAPIXpos                                  = 0x3F05
	MAPIYpos                                  = 0x3F06
	MAPIControlID                             = 0x3F07
	MAPIInitialDetailsPane                    = 0x3F08
	MAPIIdSecureMin                           = 0x67F0
	MAPIIdSecureMax                           = 0x67FF
)

We can use these constants to find specific types of MAPIAttribute by comparing it to the type of the attribute.

View Source
const (
	ATTOWNER                   = 0x0000 // Owner
	ATTSENTFOR                 = 0x0001 // Sent For
	ATTDELEGATE                = 0x0002 // Delegate
	ATTDATESTART               = 0x0006 // Date Start
	ATTDATEEND                 = 0x0007 // Date End
	ATTAIDOWNER                = 0x0008 // Owner Appointment ID
	ATTREQUESTRES              = 0x0009 // Response Requested.
	ATTFROM                    = 0x8000 // From
	ATTSUBJECT                 = 0x8004 // Subject
	ATTDATESENT                = 0x8005 // Date Sent
	ATTDATERECD                = 0x8006 // Date Received
	ATTMESSAGESTATUS           = 0x8007 // Message Status
	ATTMESSAGECLASS            = 0x8008 // Message Class
	ATTMESSAGEID               = 0x8009 // Message ID
	ATTPARENTID                = 0x800a // Parent ID
	ATTCONVERSATIONID          = 0x800b // Conversation ID
	ATTBODY                    = 0x800c // Body
	ATTPRIORITY                = 0x800d // Priority
	ATTATTACHDATA              = 0x800f // Attachment Data
	ATTATTACHTITLE             = 0x8010 // Attachment File Name
	ATTATTACHMETAFILE          = 0x8011 // Attachment Meta File
	ATTATTACHCREATEDATE        = 0x8012 // Attachment Creation Date
	ATTATTACHMODIFYDATE        = 0x8013 // Attachment Modification Date
	ATTDATEMODIFY              = 0x8020 // Date Modified
	ATTATTACHTRANSPORTFILENAME = 0x9001 // Attachment Transport Filename
	ATTATTACHRENDDATA          = 0x9002 // Attachment Rendering Data
	ATTMAPIPROPS               = 0x9003 // MAPI Properties
	ATTRECIPTABLE              = 0x9004 // Recipients
	ATTATTACHMENT              = 0x9005 // Attachment
	ATTTNEFVERSION             = 0x9006 // TNEF Version
	ATTOEMCODEPAGE             = 0x9007 // OEM Codepage
	ATTORIGNINALMESSAGECLASS   = 0x9008 // Original Message Class
)

These can be used to figure out the type of attribute an object is.

View Source
const (
	GuidExistsFlag = 0x8000
)

nolint: godot

Variables

This section is empty.

Functions

func DebugAttachment

func DebugAttachment(a *Attachment)

DebugAttachment prints attachment to stdout.

func DebugAttachments

func DebugAttachments(attachments []*Attachment)

DebugAttachments prints attachments to stdout.

func DebugAttributes

func DebugAttributes(attrs []*MAPIAttribute)

DebugAttributes prints attributes to stdout.

func ToUTF8String

func ToUTF8String(t int, data []byte) (string, error)

ToUTF8String converts data of type t to an UTF-8 string.

Types

type Attachment

type Attachment struct {
	Title          string
	LongFileName   string
	Data           []byte
	MIMEType       string
	ContentID      string
	MAPIAttributes []*MAPIAttribute
}

Attachment contains standard attachments that are embedded within the TNEF file, with the name and data of the file extracted.

type Data

type Data struct {
	Body              []byte
	Attachments       []*Attachment
	MAPIAttributes    []*MAPIAttribute
	MessageClass      string
	Subject           string
	CodePagePrimary   int
	CodePageSecondary int
}

Data contains the various data from the extracted TNEF file.

func Decode

func Decode(data []byte) (*Data, error)

Decode will accept a stream of bytes in the TNEF format and extract the attachments and body into a Data object.

func DecodeFile

func DecodeFile(path string) (*Data, error)

DecodeFile is a utility function that reads the file into memory before calling the normal Decode function on the data.

type MAPIAttribute

type MAPIAttribute struct {
	Type  int
	Name  int
	Names []string
	Data  []byte
	GUID  int
}

MAPIAttribute contains MAPI format attributes, i.e encoding type headers, attachments etc. See the constants for code references to find specific attributes.

func AttributeByMAPIName

func AttributeByMAPIName(attrs []*MAPIAttribute, mapiName int) (attr *MAPIAttribute, found bool)

AttributeByMAPIName returns the attribute found by name.

func AttributeByName

func AttributeByName(attrs []*MAPIAttribute, name string) (attr *MAPIAttribute, found bool)

AttributeByName returns the attribute found by one of its names.

func (*MAPIAttribute) AsString

func (m *MAPIAttribute) AsString() (string, error)

AsString returns the MAPIAttribites data as UTF8 string. When conversion is not possible an error is returned.

func (*MAPIAttribute) HasName

func (m *MAPIAttribute) HasName(name string) bool

HasName returns true if attribute has the given name. The check is case insensitive.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL