package com.ema.common.tools.email;

import java.util.List;

public interface EmailService {

    /**
     * 发送文本邮件
     *
     * @param to 收件人
     * @param subject 邮件主题
     * @param content 邮件内容
     * @return 是否发送成功
     */
    boolean sendText(String to, String subject, String content);

    /**
     * 发送文本邮件（带抄送）
     *
     * @param to 收件人
     * @param cc 抄送人（多个用逗号分隔）
     * @param subject 邮件主题
     * @param content 邮件内容
     * @return 是否发送成功
     */
    boolean sendText(String to, String cc, String subject, String content);

    /**
     * 发送HTML邮件
     *
     * @param to 收件人
     * @param subject 邮件主题
     * @param content 邮件HTML内容
     * @return 是否发送成功
     */
    boolean sendHtml(String to, String subject, String content);

    /**
     * 发送HTML邮件（带抄送）
     *
     * @param to 收件人
     * @param cc 抄送人（多个用逗号分隔）
     * @param subject 邮件主题
     * @param content 邮件HTML内容
     * @return 是否发送成功
     */
    boolean sendHtml(String to, String cc, String subject, String content);

    /**
     * 发送带附件的邮件
     *
     * @param to 收件人
     * @param subject 邮件主题
     * @param content 邮件内容
     * @param files 附件文件路径列表
     * @return 是否发送成功
     */
    boolean sendWithFiles(String to, String subject, String content, List<String> files);

    /**
     * 发送带附件的HTML邮件
     *
     * @param to 收件人
     * @param subject 邮件主题
     * @param content 邮件HTML内容
     * @param files 附件文件路径列表
     * @return 是否发送成功
     */
    boolean sendHtmlWithFiles(String to, String subject, String content, List<String> files);

    /**
     * 发送邮件给多个收件人
     *
     * @param toList 收件人列表
     * @param subject 邮件主题
     * @param content 邮件内容
     * @param isHtml 是否为HTML格式
     * @return 是否发送成功
     */
    boolean sendToList(List<String> toList, String subject, String content, boolean isHtml);

}
