Sample code for 30+ languages & platforms
Xojo Plugin

Add Binary Email Attachment from In-Memory Bytes

Demonstrates how to add an attachment to an email via the AddDataAttachment and AddDataAttachment2 methods.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

Dim email As New Chilkat.Email

// First populate a simple email.
email.Subject = "This is the subject."
email.Body = "This is a simple email body."
email.From = "Chilkat Software <support@chilkatsoft.com>"
success = email.AddTo("Some Recipient","someRecipient@somewhere.com")

// Load a JPG file.
// The actual source of your attachment data can come from anywhere.
// The point here is that we're first getting the bytes in memory, and THEN adding
// the bytes as an attachment.
Dim fac As New Chilkat.FileAccess
Dim jpgBytes As MemoryBlock
jpgBytes = fac.ReadEntireFile("qa_data/jpg/starfish20.jpg")

// Add the JPG bytes via AddDataAttachment.
success = email.AddDataAttachment("tinyStarfish.jpg",jpgBytes)

// We could also add the JPG and explicitly set the content-type w/ AddDataAttachment2
success = email.AddDataAttachment2("teenyStarfish.jpg",jpgBytes,"image/jpg")

// Examine the MIME:
System.DebugLog(email.GetMime())

// This is the MIME of the email:

// 	MIME-Version: 1.0
// 	Date: Mon, 17 Oct 2016 19:28:30 -0500
// 	Message-ID: <44E3519660F8C3B1F0D95F25D1FD5B3840C3E3FE@CHILKAT13>
// 	Content-Type: multipart/mixed; boundary="------------020509000105040006080600"
// 	X-Priority: 3 (Normal)
// 	Subject: This is the subject.
// 	From: "Chilkat Software" <support@chilkatsoft.com>
// 	To: "Some Recipient" <someRecipient@somewhere.com>
// 
// 	--------------020509000105040006080600
// 	Content-Type: text/plain
// 	Content-Transfer-Encoding: 7bit
// 
// 	This is a simple email body.
// 	--------------020509000105040006080600
// 	Content-Type: image/jpeg; name="tinyStarfish.jpg"
// 	Content-Transfer-Encoding: base64
// 	Content-Disposition: attachment; filename="tinyStarfish.jpg"
// 
// 	/9j/4AAQSkZJRgABAQEASABIAAD//gAmRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcD8g
// 	NC4w/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdf
// 	YmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
// 	Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8IAEQgAFAAUAwERAAIRAQMRAf/EABcAAAMBAAAA
// 	AAAAAAAAAAAAAAIDBAX/xAAYAQADAQEAAAAAAAAAAAAAAAABAgMEAP/aAAwDAQACEAMQAAAB2kZY
// 	NNEijWKddfTmLgALWH//xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQL0XqN+
// 	pM2aqJGMiqFFCyg7z//EABwRAAICAgMAAAAAAAAAAAAAAAERAAIQIQMSUf/aAAgBAwEBPwHqU5aq
// 	Axx+y1tMQl4elj//xAAcEQEAAQUBAQAAAAAAAAAAAAABEQACEBIhA1H/2gAIAQIBAT8B3Bhqy7Zc
// 	enyiwmGgDhiOzj//xAAdEAABAwUBAAAAAAAAAAAAAAABAAIREBIhIkFR/9oACAEBAAY/ArZyn+Cg
// 	xtxWuJaoCnqDuin/xAAcEAABBAMBAAAAAAAAAAAAAAABABEhYRAxQVH/2gAIAQEAAT8hkEwPUUR9
// 	DYfE4nxtRpIkBTsayuALIiuY/9oADAMBAAIAAwAAABDWPTsf/8QAGhEAAwADAQAAAAAAAAAAAAAA
// 	AAEREDFBIf/aAAgBAwEBPxC0DVPcWm+Ce4OesrkE6bjH/8QAGBEBAQEBAQAAAAAAAAAAAAAAAREA
// 	QRD/2gAIAQIBAT8QahMiOc8YgSrnTY3ELclHXn//xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFx
// 	EFH/2gAIAQEAAT8Qn3igmSZSj+c4N4zapMy9IjFV98wncN2iuLFsCEbDGxQkI6RO/n//2Q==
// 
// 	--------------020509000105040006080600
// 	Content-Type: image/jpg; name="teenyStarfish.jpg"
// 	Content-Transfer-Encoding: base64
// 	Content-Disposition: attachment; filename="teenyStarfish.jpg"
// 
// 	/9j/4AAQSkZJRgABAQEASABIAAD//gAmRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcD8g
// 	NC4w/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdf
// 	YmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
// 	Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8IAEQgAFAAUAwERAAIRAQMRAf/EABcAAAMBAAAA
// 	AAAAAAAAAAAAAAIDBAX/xAAYAQADAQEAAAAAAAAAAAAAAAABAgMEAP/aAAwDAQACEAMQAAAB2kZY
// 	NNEijWKddfTmLgALWH//xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQL0XqN+
// 	pM2aqJGMiqFFCyg7z//EABwRAAICAgMAAAAAAAAAAAAAAAERAAIQIQMSUf/aAAgBAwEBPwHqU5aq
// 	Axx+y1tMQl4elj//xAAcEQEAAQUBAQAAAAAAAAAAAAABEQACEBIhA1H/2gAIAQIBAT8B3Bhqy7Zc
// 	enyiwmGgDhiOzj//xAAdEAABAwUBAAAAAAAAAAAAAAABAAIREBIhIkFR/9oACAEBAAY/ArZyn+Cg
// 	xtxWuJaoCnqDuin/xAAcEAABBAMBAAAAAAAAAAAAAAABABEhYRAxQVH/2gAIAQEAAT8hkEwPUUR9
// 	DYfE4nxtRpIkBTsayuALIiuY/9oADAMBAAIAAwAAABDWPTsf/8QAGhEAAwADAQAAAAAAAAAAAAAA
// 	AAEREDFBIf/aAAgBAwEBPxC0DVPcWm+Ce4OesrkE6bjH/8QAGBEBAQEBAQAAAAAAAAAAAAAAAREA
// 	QRD/2gAIAQIBAT8QahMiOc8YgSrnTY3ELclHXn//xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFx
// 	EFH/2gAIAQEAAT8Qn3igmSZSj+c4N4zapMy9IjFV98wncN2iuLFsCEbDGxQkI6RO/n//2Q==
// 
// 	--------------020509000105040006080600--
//