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
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