Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

class net.Mail.Part

Ayhan Rashidov edited this page Oct 8, 2021 · 3 revisions

$.net.Mail.Part Class

Class for constructing email parts.

Reference

  • SAP Help

https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.net.Mail.Part.html

  • Module

https://github.com/SAP/xsk/tree/main/modules/api/api-xsjs/src/main/resources/xsk/net

  • Sample usage:
var files = require("io/v4/files");

// Getting the byte array of the attachment.
var xskLogo = files.readBytes('path-to-file/xsk-logo.png');

// Create an attachment $.net.Mail.Part from JSObject.
var attachmentPart = new $.net.Mail.Part({
    type: $.net.Mail.Part.TYPE_ATTACHMENT,
    data: xskLogo, 
    contentType: "image/png",
    fileName: "xsk-logo.png",
    fileNameEncoding: "UTF-8"
});

// Getting the byte array of the inline image.
var sapLogo = files.readBytes('path-to-file/sap-logo.png');

// Create an inline $.net.Mail.Part from JSObject.
var inlinePart = new $.net.Mail.Part({
    type: $.net.Mail.Part.TYPE_INLINE,
    data: sapLogo,
    contentType: "image/png",
    contentId: "IMAGE1_ID", // The content id is used in the text part to display the image in the mail body.
    fileName: "sap-logo.png",
    fileNameEncoding: "UTF-8"
});

// Create a text $.net.Mail.Part object.
var textPart = new $.net.Mail.Part({
    type: $.net.Mail.Part.TYPE_TEXT,
    text: "<html><head></head><body><h1>This is XSK</h1><br><img src=\"cid:IMAGE1_ID\"><br></body></html>",
    contentType: "text/html",
    encoding: "UTF-8"
});

// Create an $.net.Mail object.
var mail = new $.net.Mail({
    sender: {address: "sender@sap.com"},
    to: [{name: "to1", address: "to1@sap.com"}, {name: "to2", address: "to2@sap.com"}],
    cc: [{ name: "cc1", address: "cc1@sap.com"}, { name: "cc2", address: "cc2@sap.com"}],
    bcc: [{ name: "bcc1", address: "bcc1@sap.com"}],
    subject: "subject",
    subjectEncoding: "UTF-8"
});

mail.parts.push(attachmentPart, inlinePart, textPart);

// Set mail server configurations.
let mailConfig = {
    "mail.user": "<your-user>",
    "mail.password": "<your-password>",
    "mail.transport.protocol": "smtps",
    "mail.smtps.host": "<your-mail-provider-host>",
    "mail.smtps.port": "465",
    "mail.smtps.auth": "true"
};

let returnValue = mail.send(mailConfig);
$.response.setBody(JSON.stringify(returnValue));
  • new Part(PartObject)
Name Type Argument Description
PartObject object optional JS object containing elements of a Part in JSON format.
  • Coverage
Members Type Description Status
alternative string Property used for initializing "alternative" property of the text $.net.Mail.Part object.
alternativeContentType string Property used for initializing "alternativeContentType" property of the text $.net.Mail.Part object. If this property is not set, the default value is "text/plain".
contentId string Property used for initializing "contentId" property of the inline $.net.Mail.Part object.
contentType string Property used for initializing "contentType" property of the $.net.Mail.Part object.
data string / ArrayBuffer Property used for initializing "data" property of the attachment and inline $.net.Mail.Part object.
encoding string Property used for initializing "encoding" property of the text $.net.Mail.Part object. It also applies to alternative text. If this property is not set, the default value is "UTF-8".
fileName string Property used for initializing "fileName" property of the attachment and inline $.net.Mail.Part object. It contains the full name of the file with the extension, example "file.txt".
fileNameEncoding string Property used for initializing "fileNameEncoding" property of the attachment and inline $.net.Mail.Part object. It is the encoding of the filename. If this property is not set, the default value is "UTF-8".
text string Property used for initializing "text" property of the text $.net.Mail.Part object.
type string Property used for initializing "type" property of the $.net.Mail.Part object. If this property is not set, the part will not be set. It should be one of the following: $.net.Mail.Part.TYPE_TEXT $.net.Mail.Part.TYPE_ATTACHMENT $.net.Mail.Part.TYPE_INLINE
  • Issues

https://github.com/SAP/xsk/issues/19

  • Unit Tests

https://github.com/SAP/xsk/tree/main/modules/engines/engine-xsjs/src/test/resources/test/xsk/net/net.xsjs

  • Integration Tests ❌

Wiki icons legend

✅ - Feature implemented and working as supposed.
⚠️ - Feature partially implemented and needs to be finished.
❌ - Feature not implemented yet.