sendEmail method

Future<String> sendEmail({
  1. required String subject,
  2. required Sender sender,
  3. required List<Recipient> reciepients,
  4. String htmlEmail = "",
  5. String plainTextEmail = "",
  6. List<Recipient> Cc = const [],
  7. List<Recipient> Bcc = const [],
  8. Recipient? ReplyTo,
  9. String TemplateID = "",
  10. List<File> Attachments = const [],
  11. List<InlinedAttachment> InlinedAttachments = const [],
})

Implementation

Future<String> sendEmail({
  required String subject,
  required Sender sender,
  required List<Recipient> reciepients,
  String htmlEmail = "",
  String plainTextEmail = "",
  // ignore: non_constant_identifier_names
  List<Recipient> Cc = const [],
  // ignore: non_constant_identifier_names
  List<Recipient> Bcc = const [],
  // ignore: non_constant_identifier_names
  Recipient? ReplyTo,
  // ignore: non_constant_identifier_names
  String TemplateID = "",
  //Load atachments
  // ignore: non_constant_identifier_names
  List<File> Attachments = const [],
  // ignore: non_constant_identifier_names
  List<InlinedAttachment> InlinedAttachments = const [],
})async{
  Map<String,dynamic> emailMessage = {
    "From" : _mapSender(sender),
    "To" : _mapRecipients(reciepients),
    "Subject" : subject,
    "TextPart" : plainTextEmail,
    "HTMLPart" : htmlEmail,
  };
  //Add optional fields here
  if(Cc.isNotEmpty){
    emailMessage.addAll({
      "Cc" : _mapRecipients(Cc),
    });
  }
  if(Bcc.isNotEmpty){
    emailMessage.addAll({
      "Bcc" : _mapRecipients(Bcc),
    });
  }
  if(ReplyTo != null){
    emailMessage.addAll({
      "ReplyTo" : _mapRecipient(ReplyTo),
    });
  }
  if(TemplateID.isNotEmpty){
    emailMessage.addAll({
      "TemplateID" : TemplateID,
    });
  }
  if(Attachments.isNotEmpty){
    emailMessage.addAll({
      "Attachments" : await _mapAttachments(Attachments),
    });
  }
  if(InlinedAttachments.isNotEmpty){
    emailMessage.addAll({
      "InlinedAttachments" : await _mapInlinedAttachments(InlinedAttachments),
    });
  }
  //Add the resulting email message to the content to post variable
  Map<String, dynamic> contentToPost = {
    "SandboxMode" : false,
    "Messages" : [
      emailMessage,
    ],
  };
  String response = await SexyAPI(
    url: "https://$apiKey:$secretKey@api.mailjet.com",
    path: "/$emailAPIversion/send",
    parameters: {},
  ).post(
    headers: {
      "Content-Type" : "application/json",
    },
    body: jsonEncode(contentToPost),
  );
  return response;
}