Provides properties and methods for constructing an e-mail attachment.
System.Object
EASendMail.MimePart
EASendMail.Attachment
[Visual Basic] Public Class Attachment
[C#] public class Attachment
[C++] public ref class Attachment
[JavaScript] public class Attachment
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 Constructors
| Attachment Constructor | Initializes a new instance of the Attachment class. |
Public Properties
| ContentID | Gets or sets the Content-ID of the embedded attachment. |
| Name | Gets or sets the name of the attachment. |
Public Methods
| Load | Loads the attachment from a binary array. |
| LoadAsync | Loads the attachment from a file or remote web site. |
Remarks
Example
[Visual Basic, C#, JavaScript] To get the full samples of EASendMail, please refer to Samples section.
[C# - Send Email with Attachment from Windows Store Apps - XAML]
using EASendMail;
using System.Threading.Tasks;
private async Task SendEmail()
{
String Result = "";
try
{
SmtpMail oMail = new SmtpMail("TryIt");
SmtpClient oSmtp = new SmtpClient();
// Set sender email address, please change it to yours
oMail.From = new MailAddress("test@emailarchitect.net");
// Add recipient email address, please change it to yours
oMail.To.Add(new MailAddress("support@emailarchitect.net"));
// Set email subject
oMail.Subject = "test email from C# XAML project";
// Set email body
oMail.TextBody = "this is a test email with Attachment sent from Windows Store App, do not reply";
// Your SMTP server address
SmtpServer oServer = new SmtpServer("smtp.emailarchitect.net");
// User and password for ESMTP authentication
oServer.User = "test@emailarchitect.net";
oServer.Password = "testpassword";
// If your SMTP server requires TLS connection on 25 port, please add this line
// oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
// If your SMTP server requires SSL connection on 465 port, please add this line
// oServer.Port = 465;
// oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
// get a file path from PicturesLibrary,
// to access files in PicturesLibrary, you MUST have "Pictures Library" checked in
// your project -> Package.appxmanifest -> Capabilities
Windows.Storage.StorageFile file =
await Windows.Storage.KnownFolders.PicturesLibrary.GetFileAsync("test.jpg");
string attfile = file.Path;
Attachment oAttachment = await oMail.AddAttachmentAsync(attfile);
// if you want to add attachment from remote URL instead of local file.
// string attfile = "http://www.emailarchitect.net/test.jpg";
// Attachment oAttachment = await oMail.AddAttachmentAsync(attfile);
// you can change the Attachment name by
// oAttachment.Name = "mytest.jpg";
// If you want to send email with embedded picture
// Specifies the attachment as an embedded picture
// string contentID = "test001@host";
// oAttachment.ContentID = contentID;
// oMail.HtmlBody = "<html><body>this is an <img src=\"cid:" + contentID + "\"> embedded picture.</body></html>";
await oSmtp.SendMailAsync(oServer, oMail);
Result = "Email was sent successfully!";
}
catch (Exception ep)
{
Result = String.Format("Failed to send email with the following error: {0}", ep.Message);
}
// Display Result by Diaglog box
Windows.UI.Popups.MessageDialog dlg = new
Windows.UI.Popups.MessageDialog(Result);
await dlg.ShowAsync();
}
[VB - Send Email with Attachment from Windows Store Apps - XAML]
Imports EASendMail
Private Async Function SendEmail() As Task
Dim Result As String = ""
Try
Dim oMail As New SmtpMail("TryIt")
Dim oSmtp As New SmtpClient()
' Set sender email address, please change it to yours
oMail.From = New MailAddress("test@emailarchitect.net")
' Add recipient email address, please change it to yours
oMail.To.Add(New MailAddress("support@emailarchitect.net"))
' Set email subject
oMail.Subject = "test email from VB XAML project"
' Set email body
oMail.TextBody = "this is a test email with attachment sent from Windows Store App, do not reply"
' Your SMTP server address
Dim oServer As New SmtpServer("smtp.emailarchitect.net")
' User and password for ESMTP authentication
oServer.User = "test@emailarchitect.net"
oServer.Password = "testpassword"
' If your SMTP server requires TLS connection on 25 port, please add this line
' oServer.ConnectType = SmtpConnectType.ConnectSSLAuto
' If your SMTP server requires SSL connection on 465 port, please add this line
' oServer.Port = 465
' oServer.ConnectType = SmtpConnectType.ConnectSSLAuto
' get a file path from PicturesLibrary,
' to access files in PicturesLibrary, you MUST have "Pictures Library" checked in
' your project -> Package.appxmanifest -> Capabilities
Dim file As Windows.Storage.StorageFile =
Await Windows.Storage.KnownFolders.PicturesLibrary.GetFileAsync("test.jpg")
Dim attfile As String = file.Path
Dim oAttachment As Attachment = Await oMail.AddAttachmentAsync(attfile)
' if you want to add attachment from remote URL instead of local file.
' Dim attfile As String = "http://www.emailarchitect.net/test.jpg"
' Dim oAttachment As Attachment = Await oMail.AddAttachmentAsync(attfile)
' you can change the Attachment name by
' oAttachment.Name = "mytest.jpg"
' If you want to send email with embedded picture
' Specifies the attachment as an embedded picture
' Dim contentID As String = "test001@host"
' oAttachment.ContentID = contentID
' oMail.HtmlBody = "<html><body>this is an <img src=""cid:" + contentID + """> embedded picture.</body></html>"
Await oSmtp.SendMailAsync(oServer, oMail)
Result = "Email was sent successfully!"
Catch ep As Exception
Result = String.Format("Failed to send email with the following error: {0}", ep.Message)
End Try
' Display Result by Diaglog box
Dim dlg As New Windows.UI.Popups.MessageDialog(Result)
Await dlg.ShowAsync()
End Function
[JavaScript - Send Email with Attachment from Windows Store Apps - HTML5]
function prepareMail() {
var result = "";
var oMail = new EASendMail.SmtpMail("TryIt");
// Set sender email address, please change it to yours
oMail.from = new EASendMail.MailAddress("test@emailarchitect.net");
// Add recipient email address, please change it to yours
oMail.to.add(new EASendMail.MailAddress("support@emailarchitect.net"));
// Set email subject
oMail.subject = "test email from JavaScript HTML5 project";
// Set email body
oMail.textBody = "this is a test email with attachment sent from Windows Store App, do not reply";
// get a file path from PicturesLibrary,
// to access files in PicturesLibrary, you MUST have "Pictures Library" checked in
// your project -> Package.appxmanifest -> Capabilities
Windows.Storage.KnownFolders.picturesLibrary.getFileAsync("test.jpg").then(function (file) {
var attfile = file.path;
// if you want to add attachment from remote URL instead of local file.
// var attfile = "http://www.emailarchitect.net/test.jpg";
oMail.addAttachmentAsync(attfile).then(function (oAttachment) {
// you can change the Attachment name by
// oAttachment.name = "mytest.jpg";
// If you want to send email with embedded picture
// Specifies the attachment as an embedded picture
// var contentID = "test001@host";
// oAttachment.contentID = contentID;
//oMail.htmlBody = "<html><body>this is an <img src=\"cid:" + contentID + "\"> embedded picture.</body></html>";
sendMailEx(oMail);
},
// error handle
function (e) {
// because javascript exception only gives the stack trace messages, but it is not
// real description of exception, so we give a property lastErrorMessage for javascript.
if (oMail.lastErrorMessage != "") {
result = oMail.lastErrorMessage;
}
else {
result = e.message;
}
(new Windows.UI.Popups.MessageDialog(result, "Error Information")).showAsync();
return;
});
},
// error handle
function (e) {
result = e.message;
(new Windows.UI.Popups.MessageDialog(result, "Error Information")).showAsync();
return;
});
}
function sendMailEx( oMail )
{
var result = "";
var oSmtp = new EASendMail.SmtpClient();
// Your SMTP server address
var oServer = new EASendMail.SmtpServer("smtp.emailarchitect.net");
// User and password for ESMTP authentication
oServer.user = "test@emailarchitect.net";
oServer.password = "testpassword";
// If your SMTP server requires TLS connection on 25 port, please add this line
// oServer.connectType = EASendMail.SmtpConnectType.connectSSLAuto;
// If your SMTP server requires SSL connection on 465 port, please add this line
// oServer.port = 465;
// oServer.connectType = EASendMail.SmtpConnectType.connectSSLAuto;
oSmtp.sendMailAsync(oServer, oMail).then(function (e) {
result = "Email was sent successfully!";
// Display Result by Diaglog box
(new Windows.UI.Popups.MessageDialog(result, "Success")).showAsync();
},
function (e) {
// because javascript exception only gives the stack trace messages, but it is not
// real description of exception, so we give a property lastErrorMessage for javascript.
if (oSmtp.lastErrorMessage != "") {
result = oSmtp.lastErrorMessage;
}
else {
result = e.message;
}
oSmtp.close();
// Display Result by Diaglog box
(new Windows.UI.Popups.MessageDialog(result, "Error Information")).showAsync();
});
}
See Also
SmtpMail.AddAttachmentAsync Method
SmtpMail.AddAttachment Method
SmtpMail.ImportHtmlBodyAsync Method
SmtpMail.ImportHtmlAsync Method