Gets an array of the attachments of the email message.
This property is
obsoleted by Mail.AttachmentList
[Visual Basic 6.0] Public Property Get Attachments() As Variant
[Visual C++] public: get_Attachments(VARIANT* pVal);
Property Value
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 Dim i, Count Dim atts atts = oMail.Attachments i = LBound(atts) Count = UBound(atts) If (Count >= i) Then If Not oTools.ExistFile(tempFolder) Then oTools.CreateFolder (tempFolder) End If For i = LBound(atts) To Count Dim att As Attachment Set att = atts(i) Dim attname attname = tempFolder & "\" & att.Name att.SaveAs attname, True Next End If 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, Count Dim atts atts = oMail.Attachments i = LBound(atts) Count = UBound(atts) If (Count >= i) Then If Not oTools.ExistFile(tempFolder) Then oTools.CreateFolder (tempFolder) End If For i = LBound(atts) To Count Dim att Set att = atts(i) Dim attname attname = tempFolder & "\" & att.Name att.SaveAs attname, True Next End If 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(); LONG UBound = 0, LBound = 0; _variant_t atts = oMail->Attachments; SAFEARRAY *psa = atts.parray; SafeArrayGetLBound(psa, 1, &LBound); SafeArrayGetUBound(psa, 1, &UBound); INT count = UBound-LBound+1; ::CreateDirectory(tempFolder.GetString(), NULL); for(long i = LBound; i <= UBound; i++) { _variant_t vtAtt; SafeArrayGetElement(psa, &i, &vtAtt); IAttachmentPtr pAtt; vtAtt.pdispVal->QueryInterface(__uuidof(IAttachment), (void**)&pAtt); 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); } }
See Also
Mail.AttachmentList Property
Attachment Class
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