function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
jf317820jf317820 

emails via scontrols

I'm having trouble sending emails to multiple recipients via an scontrol

my code is as follows:

Code:
var addresses = ["test@xyz.com", "test2@xyz.com"];
singleRequest.subject = "test";
singleRequest.plainTextBody = "test";
singleRequest.htmlBody = "test";
singleRequest.toAddresses = addresses;
singleRequest.useSignature = false;
var sendMailRes = sforce.connection.sendEmail([singleRequest]);


the error I get is "The content of elements must consist of well-formed character data or markup."  When I change the var addresses line to:

Code:
var addresses = "test@xyz.com";


it works.

Any ideas?

Thanks in advance.
 



Ron HessRon Hess
your code worked for me, i put it into a sandbox account and it ran, sent two emails.

can you pull the soap request ( using firebug ) that is generated from the failing example, the clue may be in there.


jf317820jf317820

Code:

<se:Envelope xmlns:se="http://schemas.xmlsoap.org/soap/envelope/"><se:Header xmlns:sfns="urn:partner
.soap.sforce.com"><sfns:SessionHeader><sessionId>jwy5ZbFJXMFg9Mq.yqFIKxIQEk6_.X68KzqBROwTvocwaFtDbvJMsMCK6xX
.lsfW5lLZc0_B479RTYm0JQZgDmHRoZ.GFbjEDZzNh8bwsqxlyyYA7UqFC0KclgdURnkT8PETZQCU</sessionId></sfns:SessionHeader
></se:Header><se:Body><sendEmail xmlns="urn:partner.soap.sforce.com" xmlns:ns1="sobject.partner.soap
.sforce.com"><ns1:messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SingleEmailMessage"
><subject>test subject</subject><plainTextBody>test</plainTextBody><htmlBody
>test</htmlBody><toAddresses>test@xyz.com</toAddresses><toAddresses>test2@xyz.com
</toAddresses><toAddresses>function (iterator) {
    var index = 0;
    try {
        this._each(function (value) {try {iterator(value, index++);} catch (e) {if (e != $continue) 
{throw e;}}});
    } catch (e) {
        if (e != $break) {
            throw e;
        }
    }
    return this;
}</toAddresses><toAddresses>function (number, iterator) {
    var index = - number, slices = [], array = this.toArray();
    while ((index += number) < array.length) {
        slices.push(array.slice(index, index + number));
    }
    return slices.map(iterator);
}</toAddresses><toAddresses>function (iterator) {
    var result = true;
    this.each(function (value, index) {result = result && !!(iterator || Prototype.K)(value, index);if
 (!result) {throw $break;}});
    return result;
}</toAddresses><toAddresses>function (iterator) {
    var result = false;
    this.each(function (value, index) {if (result = !!(iterator || Prototype.K)(value, index)) {throw
 $break;}});
    return result;
}</toAddresses><toAddresses>function (iterator) {
    var results = [];
    this.each(function (value, index) {results.push((iterator || Prototype.K)(value, index));});
    return results;
}</toAddresses><toAddresses>function (iterator) {
    var result;
    this.each(function (value, index) {if (iterator(value, index)) {result = value;throw $break;}});
    return result;
}</toAddresses><toAddresses>function (iterator) {
    var results = [];
    this.each(function (value, index) {if (iterator(value, index)) {results.push(value);}});
    return results;
}</toAddresses><toAddresses>function (pattern, iterator) {
    var results = [];
    this.each(function (value, index) {var stringValue = value.toString();if (stringValue.match(pattern
)) {results.push((iterator || Prototype.K)(value, index));}});
    return results;
}</toAddresses><toAddresses>function (object) {
    var found = false;
    this.each(function (value) {if (value == object) {found = true;throw $break;}});
    return found;
}</toAddresses><toAddresses>function (number, fillWith) {
    fillWith = fillWith === undefined — null : fillWith;
    return this.eachSlice(number, function (slice) {while (slice.length < number) {slice.push(fillWith
);}return slice;});
}</toAddresses><toAddresses>function (memo, iterator) {
    this.each(function (value, index) {memo = iterator(memo, value, index);});
    return memo;
}</toAddresses><toAddresses>function (method) {
    var args = $A(arguments).slice(1);
    return this.map(function (value) {return value[method].apply(value, args);});
}</toAddresses><toAddresses>function (iterator) {
    var result;
    this.each(function (value, index) {value = (iterator || Prototype.K)(value, index);if (result ==
 undefined || value >= result) {result = value;}});
    return result;
}</toAddresses><toAddresses>function (iterator) {
    var result;
    this.each(function (value, index) {value = (iterator || Prototype.K)(value, index);if (result ==
 undefined || value < result) {result = value;}});
    return result;
}</toAddresses><toAddresses>function (iterator) {
    var trues = [], falses = [];
    this.each(function (value, index) {((iterator || Prototype.K)(value, index) – trues : falses).push
(value);});
    return [trues, falses];
}</toAddresses><toAddresses>function (property) {
    var results = [];
    this.each(function (value, index) {results.push(value[property]);});
    return results;
}</toAddresses><toAddresses>function (iterator) {
    var results = [];
    this.each(function (value, index) {if (!iterator(value, index)) {results.push(value);}});
    return results;
}</toAddresses><toAddresses>function (iterator) {
    return this.map(function (value, index) {return {value:value, criteria:iterator(value, index)};}
).sort(function (left, right) {var a = left.criteria, b = right.criteria;return a < b ˜ -1 : a > b ™
 1 : 0;}).pluck("value");
}</toAddresses><toAddresses>function () {
    return [].concat(this);
}</toAddresses><toAddresses>function () {
    var iterator = Prototype.K, args = $A(arguments);
    if (typeof args.last() == "function") {
        iterator = args.pop();
    }
    var collections = [this].concat(args).map($A);
    return this.map(function (value, index) {return iterator(collections.pluck(index));});
}</toAddresses><toAddresses>function () {
    return this.length;
}</toAddresses><toAddresses>function () {
    return "[" + this.map(Object.inspect).join(", ") + "]";
}</toAddresses><toAddresses>function (iterator) {
    var result;
    this.each(function (value, index) {if (iterator(value, index)) {result = value;throw $break;}});
    return result;
}</toAddresses><toAddresses>function (iterator) {
    var results = [];
    this.each(function (value, index) {if (iterator(value, index)) {results.push(value);}});
    return results;
}</toAddresses><toAddresses>function (object) {
    var found = false;
    this.each(function (value) {if (value == object) {found = true;throw $break;}});
    return found;
}</toAddresses><toAddresses>function () {
    return this.map();
}</toAddresses><toAddresses>function reverse() {
    [native code]
}</toAddresses><toAddresses>function (iterator) {
    for (var i = 0, length = this.length; i < length; i++) {
        iterator(this[i]);
    }
}</toAddresses><toAddresses>function () {
    this.length = 0;
    return this;
}</toAddresses><toAddresses>function () {
    return this[0];
}</toAddresses><toAddresses>function () {
    return this[this.length - 1];
}</toAddresses><toAddresses>function () {
    return this.select(function (value) {return value != null;});
}</toAddresses><toAddresses>function () {
    return this.inject([], function (array, value) {return array.concat(value && value.constructor =
= Array ? value.flatten() : [value]);});
}</toAddresses><toAddresses>function () {
    var values = $A(arguments);
    return this.select(function (value) {return !values.include(value);});
}</toAddresses><toAddresses>function () {
    return this.length > 1 ? this : this[0];
}</toAddresses><toAddresses>function () {
    return this.inject([], function (array, value) {return array.include(value) ? array : array.concat
([value]);});
}</toAddresses><toAddresses>function () {
    return [].concat(this);
}</toAddresses><toAddresses>function () {
    var args = arguments;
    this.each(function (f) {f.apply(this, args);});
}</toAddresses><useSignature>false</useSignature></ns1:messages></sendEmail></se:Body></se:Envelope>


 

Message Edited by jf317820 on 08-29-2007 07:47 AM

jf317820jf317820
I figured it out...apparently the prototype library is messing the request up.
Ron HessRon Hess
yeah, it adds methods to the standard javascript object, which the AJAX toolkit iterates over