Attachment Object


Provides properties and methods for presenting an e-mail attachment.

IDispatch
    IAttachment

[Visual Basic 6.0]
Public Class Attachment
[Visual C++]
public: interface IAttachment

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Public Properties

Content Gets the Content (binary data) of the embedded attachment.
ContentID Gets the Content-ID of the embedded attachment.
ContentType Gets the Content-Type of the attachment.
EncodedContent Gets the enconded content (raw data) of the attachment.
Headers Gets the HeaderCollection for headers of the e-mail message.
Name Gets the name of the attachment.

Public Methods

SaveAs Saves the attachment to a local file.

Remarks

It is not recommended to construct Attachment object instance directly. To get attachments of email, please use Mail.Attachments property, this property returns an array for Attachment object instances.

Example

[Visual Basic 6.0, VBScript, Visual C++] To get the full samples of EAGetMail, please refer to Samples section.

[Visual Basic 6.0]
Private Sub ParseAttachment()
On Error GoTo ErrorHandle
    Dim oMail As New EAGetMailObjLib.Mail
    Dim oTools As New EAGetMailObjLib.Tools
    
    oMail.LicenseCode = "TryIt"
    oMail.LoadFile "c:\test.eml", False
    Dim tempFolder As String
    tempFolder = "c:\temp"
    
    ' Decode winmail.dat (TNEF) automatically'
    oMail.DecodeTNEF
    
    If Not oTools.ExistFile(tempFolder) Then
        oTools.CreateFolder (tempFolder)
    End If
    
    Dim i, atts
    Set atts = oMail.AttachmentList

    For i = 0 To atts.Count - 1
        Dim att As Attachment
        Set att = atts.Item(i)
        Dim attname
        attname = tempFolder & "\" & att.Name
        att.SaveAs attname, True
    Next

    Exit Sub
ErrorHandle:
    MsgBox Err.Description
    
End Sub
    

[VBScript] Sub ParseAttachment() Dim oMail Set oMail = CreateObject("EAGetMailObj.Mail") Dim oTools Set oTools = CreateObject("EAGetMailObj.Tools") oMail.LicenseCode = "TryIt" oMail.LoadFile "c:\test.eml", False Dim tempFolder tempFolder = "c:\temp" ' Decode winmail.dat (TNEF) automatically oMail.DecodeTNEF Dim i, atts Set atts = oMail.AttachmentList If Not oTools.ExistFile(tempFolder) Then oTools.CreateFolder (tempFolder) End If For i = 0 To atts.Count - 1 Dim att Set att = atts.Item(i) Dim attname attname = tempFolder & "\" & att.Name att.SaveAs attname, True Next End Sub
[Visual C++] //if you do not use MFC, please add this line to support CString type. #include <atlstr.h> #include "eagetmailobj.tlh" using namespace EAGetMailObjLib; void ParseAttachment() { IMailPtr oMail = NULL; CString tempFolder = _T("c:\\temp"); try { oMail.CreateInstance(__uuidof(EAGetMailObjLib::Mail)); oMail->LicenseCode = _T("TryIt"); oMail->LoadFile(_T("c:\\test.eml"), VARIANT_FALSE); // Decode winmail.dat (TNEF) automatically oMail->DecodeTNEF(); IAttachmentCollectionPtr attachments = oMail->AttachmentList; ::CreateDirectory(tempFolder.GetString(), NULL); for(long i = 0; i < attachments->Count; i++) { IAttachmentPtr pAtt = attachments->GetItem(i); CString name = (TCHAR*)pAtt->Name; CString attname = tempFolder; attname.Append(_T("\\")); attname.Append((TCHAR*)pAtt->Name); pAtt->SaveAs(attname.GetString(), VARIANT_TRUE); } } catch(_com_error &ep) { MessageBox(NULL, (TCHAR*)ep.Description(), _T("Error"), MB_OK); } }
[Delphi] procedure ParseAttachment(); Var oMail: TMail; i: Integer; atts: IAttachmentCollection; att: IAttachment; begin oMail := TMail.Create(Application); oMail.LicenseCode := 'TryIt'; oMail.LoadFile('c:\test.eml', false); // Decode winmail.dat (TNEF) automatically oMail.DecodeTNEF(); atts := oMail.AttachmentList; for i := 0 To atts.Count - 1 do begin att := atts.Item[i]; ShowMessage(att.Name); att.SaveAs('c:\tempfolder\' + att.Name, true); end; end;

See Also

Mail.AttachmentList Property
Mail.Attachments Property

Online Tutorials

Parse Email in VB6 - Tutorial
Parse winmail.dat(TNEF) in VB6 - Tutorial
Parse Email in Delphi - Tutorial
Parse winmail.dat(TNEF) in Delphi - Tutorial
Parse Email in VC++ - Tutorial
Parse winmail.dat(TNEF) in VC++ - Tutorial