mailto link 使用计算 属性 未加载完整邮件正文

mailto link using computed property not loading full message body

mailto link 正在正确加载收件人和主题,但它似乎将电子邮件正文截断为非常短的长度。我的电子邮件总共有 1500 个字符,所以我低于 mailto 限制。电子邮件似乎将正文截断了大约 200 个字符。

我将计算的 属性 附加到 mailto 字符串,因为我正在使用一个名为“marked.js”的包,它将用户输入解析为 markdown/html。

我该如何解决这个问题?我已经尝试将新数据 属性 设置为“emailFormat”,并在页面上通过标记的包安装电子邮件正文 运行,然后将其设置为数据 属性。我认为这会解决问题,因为现在我只是将一个字符串附加到 mailto 正文,但这没有用,我仍然得到一个不完整的电子邮件正文。

计算 属性 通过标记的包 api 接收响应数据和 运行s

letterContentToHtml() {
                if (this.formData.letterContent != null) {
                    return marked(this.formData.letterContent); // marked is package to parse user input to markdown/html. 
                }
                else {
                    return null;
                }
            },

显示内容的模板部分和包含 mailto href 的按钮

<p class="email-content-data" v-html="letterContentToHtml"></p>
<v-btn class="send-form-btn"
            :disabled="!campaignFormValid || this.emailRecepients == ''"
            elevation="12"
            color="primary"
            target="_blank" 
            :href="mailToString"
            @click="updateCampaignList">
                Send Email!
        </v-btn>

mailto 已计算 属性

mailToString() {
                return "mailto:"+this.formData.emailList+"?subject="+this.formData.subject+"&body="+this.emailContent;
            },

您必须 URL-encode 您的数据,然后才能将其分配给 hyperlink/anchor 标签的 HREF 属性:

mailToString()
{
  return "mailto:" + encodeURIComponent(this.formData.emailList) + "?subject=" + encodeURIComponent(this.formData.subject) + "&body=" + encodeURIComponent(this.emailContent);
},

否则它可能会干扰一些保留字符,例如?=& 或一些 Unicode 字符。