在前端使用邮件分享进行快速分享~,详情参考->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查询表示法。

文章作者: 小森森
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小森森博客
博客 前端 源码
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝