是否可以使用UI5通过电子邮件发送页面内容?

时间:2017-01-18 07:26:16

标签: sapui5 ui5-library

我的应用程序旨在创建一个表,稍后由用户编辑。在此之后,我需要我的应用程序通过电子邮件发送页面内容。

我使用了URLHelper的触发器电子邮件()但是通过这个我能够触发带有to,cc,subject,text body的电子邮件,但是我的ui5应用程序无法将表格插入到电子邮件中。

有人可以建议吗?或甚至可能吗? 我也不介意使用普通的javascript,Point是我需要在不使用后端的情况下执行此操作。

1 个答案:

答案 0 :(得分:0)

我们在其中一个应用上做了类似的事情。我在屏幕上添加了一个按钮,当点击该按钮时会调用“mailto”,并使用to,subject和body填充电子邮件客户端。正文是作为脚本的一部分创建的。我们基本上将表内容读入一个数组,然后使用forEach遍历这些条目。请记住使用mailto甚至URLHelper都不允许您在' body'中使用HTML格式的文本。电子邮件。所以,如果你正在寻找漂亮的东西,你可能会失去运气。

    onNotifyUserPress: function(oEvent) {
        var oItem = oEvent.getSource();
        var oBinding = oItem.getBindingContext();
        // Set some vars for the email package
        var sEmpEmail = oBinding.getProperty("Smtp");
        var sEmpName = oBinding.getProperty("STEXT_2");
        var sEmailSubject = "Your Subject " + sEmpName;
        // Create DateFormat Object
        var oDateFormat = DateFormat.getDateTimeInstance({pattern: "dd/MM/yyyy"});

        // Retrieve Table Data
        var oTable = this.getView().byId("yourTable");
        var aTableData = oTable.getBinding("items").getContexts();
        // Build the email body
        var sBody = sEmpName + " - Some Body Text\n\n";
        sBody += "Field 1 | " + "Field 2 | " + "Field 3 | " + "Field 4" + "\n";
        // Loop through table data and build the output for the rest of the email body
        aTableData.forEach(function(oModel) {
            var oModelData = oModel.getObject();
            var sEndDate = oDateFormat.format(oModelData.Vendd);
            var sStatus = this._formatStatus(oModelData.ZQ_STAT);
            sBody += (oModelData.Essential === "X" ? "Yes" : "No") + " | " + oModelData.Ttext + " | " +  sEndDate + " | " + sStatus + "\n";
        }.bind(this));
        // Open email client window and prepopulate with info
        window.open("mailto:" + sEmpEmail + "&subject=" + sEmailSubject + "&body=" + encodeURIComponent(sBody), "_self");
    },

您显然需要更新代码以指向您的表格数据。在这个特定的实例中,我们有一个包含几个部分的对象页面。每个部分都包含一个表,该表加载与用户关联的实体列表。由于数据已经加载并存在于模型中,这可能与您尝试执行的操作(如果我理解正确)的工作方式不同,因为您需要在输入数据后发送电子邮件/改性?

希望这至少可以让你开始!

干杯!