1

やあみんな、

JavaScriptで作成されたメールをSoapRequestでフォーマットするために数時間試しています。ただし、改行を設定することはできません

\n-動作しません <br />-動作しません &#xD; -動作しません \u000A \u000D-動作しません

これがメール本文の実際のコードです

    get_EmailBodyInformManager: function (projectNumber, topic, responsibleDepartment, potentialCustomer, KAMofCustomer, projectManager) {
    if (KAMofCustomer == null) {
        KAMofCustomer = "";
    }
    return "Dear Sir or Madam. &#xD;" +
           "A decision about the project leader for the following international project is necessary: &#xD" +
           "Project Number: " + projectNumber + "&#xD;" +
           "Topic: " + topic + " &#xD;" +
           "Responsible Department: " + responsibleDepartment + "&#xD;" +
           "Potential Customer: " + potentialCustomer + "&#xD;" +
           "KAM of Potential Customer: " + KAMofCustomer + "&#xD;" +
           "WILO Project Manager: " + projectManager + "";
},

そして石鹸のリクエスト:

        var xml = "<?xml version='1.0' encoding='utf-8'?>" +
          "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
          " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
          " xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
          authenticationHeader +
          "<soap:Body>" +
          "<Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
          "<entity xsi:type='email'>" +
          "<ownerid>" + userId + "</ownerid>" +
          "<regardingobjectid type='opportunity'>" + OpportunityId + "</regardingobjectid>" +
          "<subject>" + subject + "</subject>" +
          "<description>" + body + "</description>" +
          "<from>" +
            "<activityparty>" +
                "<partyid type='systemuser'>" + userId + "</partyid>" +
            "</activityparty>" +
          "</from>" +
          "</entity>" +
          "</Create>" +
          "</soap:Body>" +
          "</soap:Envelope>";
4

2 に答える 2

1

説明フィールドを通過するものが XML 用にエンコードされている限り、HTML 形式を受け入れる必要があります。渡すデータについては、各行にコンテンツが表示される HTML テーブルとしてフォーマットすることをお勧めします。を使用して、コンテンツを標準の HTML として書き出します。

var description = '<table><tr><td>...</td></tr></table>';

次に、この値と subject などの他の値を次の関数に渡し、XML で渡すためにエンコードします。

xmlEncode = function(strInput) {
    var c;
    var xmlEncode = '';

    if (strInput == null) {
        return null;
    }
    if (strInput == '') {
        return '';
    }

    for (var cnt = 0; cnt < strInput.length; cnt++) {
        c = strInput.charCodeAt(cnt);

        if (((c > 96) && (c < 123)) ||
            ((c > 64) && (c < 91)) ||
            (c == 32) ||
            ((c > 47) && (c < 58)) ||
            (c == 46) ||
            (c == 44) ||
            (c == 45) ||
            (c == 95)) {
            xmlEncode = xmlEncode + String.fromCharCode(c);
        } else {
            xmlEncode = xmlEncode + '&#' + c + ';';
        }
    }

    return xmlEncode;
}
于 2012-11-05T19:44:58.317 に答える
0

実装がより簡単な代替アプローチは次のとおりです。

  1. メールを作成するオンデマンド ワークフローを作成します。これにより、テンプレートを簡単に編集および維持できます。たとえば、電子メールの文言を変更したい場合でも、再コード化する必要はありません。
  2. JavaScript からワークフローを開始します。

これは、JavaScript で電子メール全体を作成するのと同じことを効果的に達成しますが、実装する方がおそらく簡単です。

于 2012-11-06T09:24:08.680 に答える