using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Threading.Tasks;
namespace Amazon.Ses.Wrapper
{
///
/// Interface to provide SendEmail Operations by using Amazon Simple Mail Service (SES)
///
public interface ISESEmailService
{
///
/// Sends an email by using Amazon SES Service.
///
/// Contains subject of the email
/// Contains body of the email
/// Whether the email body is in HTML or not
/// List containing email ids to send the email to
/// Contains email id of sender
/// List containing ccemail ids to send the email copy to
/// List containing bcc email ids to send the bcc email copy to
/// Returns the HttpStatusCode that Amazon SES returned
Task SendEmailAsync(string subject, string body, bool isHtmlBody, List to,
string? sender = null, List cc = null, List bcc = null);
///
/// Sends an email with attachment by using Amazon SES Service.
///
/// Contains subject of the email
/// Contains body of the email
/// Whether the email body is in HTML or not
/// path containing file to be send as an attachment in the email
/// List containing email ids to send the email to
/// Contains email id of sender
/// List containing ccemail ids to send the email copy to
/// List containing bcc email ids to send the bcc email copy to
/// Returns the HttpStatusCode that Amazon SES returned
Task SendEmailWithAttachmentAsync(string subject, string body, bool isHtmlBody, string fileAttachmentPath, List to,
string? sender = null, List cc = null, List bcc = null);
///
/// Sends an email with attachment by using Amazon SES Service.
///
/// Contains subject of the email
/// Contains body of the email
/// Whether the email body is in HTML or not
/// filename to be used for attachment in the email
/// Stream to be send as an attachment in the email
/// List containing email ids to send the email to
/// Contains email id of sender
/// List containing ccemail ids to send the email copy to
/// List containing bcc email ids to send the bcc email copy to
/// Returns the HttpStatusCode that Amazon SES returned
Task SendEmailWithAttachmentAsync(string subject, string body, bool isHtmlBody, string fileName, Stream fileAttachmentStream, List to,
string? sender = null, List cc = null, List bcc = null);
}
}