JavaScript调用系统邮件快速分享

发布时间 2023-12-31 20:42:51作者: LiangSenCheng小森森

在前端使用邮件分享进行快速分享~,详情参考->MDN

自定义参数

  • subject:主题

  • cc:抄送到次要收件人(与邮件有关但无需做出应答的个人或组织)

  • bcc:密送到其他收件人(主要、次要收件人不应该获得密送收件人的身份)

  • body:邮件内容

注:每个字段的值都必须进行编码 (也就是, 带有非印刷字符和空格)

/**
 * 参数字符串拼接
 * @param str 原参数字符串
 * @param key 新参数key
 * @param value 新参数value
 * @returns 拼接好的参数字符串
 */
const concatStr = (str: string, key: string, value: any) => {
  if (str !== '') {
    return `${str}&${key}=${value}`;
  }
  return `${key}=${value}`;
};
/**
 * 快速分享到邮件
 * @param to 收件人
 * @param subject 邮件主题
 * @param body 邮件内容
 */
export const emailShare = (to = '', subject = '', body = '') => {
  // -start 把非空参数拼接
  let str = '';
  if (subject !== '') {
    str = concatStr(str, 'subject', subject);
  }
  if (body !== '') {
    str = concatStr(str, 'body', body);
  }
  // -end 把非空参数拼接

  const content = `mailto:${to}?${str}`;
  const aTag = window.document.createElement('a');
  aTag.setAttribute('href', content);
  aTag.click();
};

使用示例

  • mailto:

  • mailto:nowhere@mozilla.org

  • mailto:nowhere@mozilla.org,nobody@mozilla.org

  • mailto:nowhere@mozilla.org?cc=nobody@mozilla.org

  • mailto:nowhere@mozilla.org?cc=nobody@mozilla.org&subject=This%20is%20the%20subject

请注意,使用&符号来分隔mailto URL中的每个字段。这是标准的URL查询表示法。

原文链接

JavaScript调用系统邮件快速分享