Using the PHP Fuel SDK. I could have sworn that I saw somewhere that you can send HTML__BODY, HTML_Body, or something similar to replace the entire content of an Email with unlimited length - bypassing the 2k limit for account attributes and the 4k limit for DE fields. Am I crazy, or it this just another undocumented feature that is known by work of mouth?
More information about HTML Attributes can be found at: http://help.exacttarget.com/en/technical_library/web_service_guide/triggered_email_scenario_guide_for_developers/
They are used when passing in HTML which exceeds 2000 characters, specifically for triggered sends.
A profile attribute will need to be created with the HTML__ prefix before it can be used with a triggered send. Also, an email will need to be created which references this profile attribute using standard substitution syntax. For example, if you call your profile attribute HTML__Body, then the email will need to contain:
While it would be possible to pass the entire HTML for an email using this mechanism, I would recommend keeping as much content in the Email as possible then only passing over the pieces that are truly dynamic.
Another option would be to used a TriggeredSendDataExtension with a field that has the length removed. By default, it will put a length of 50 when creating a Text type field in the interface but that value can be removed to make the field accept larger values. When using a Data Extension field instead of a profile attribute, it isn't necessary to prefix the name with HTML__.
I just wanted to note here that the above workaround involving a profile attribute might no longer be possible in Enterprise 2.0 accounts. When I tried setting up a profile attribute as discussed in an enterprise 2.0 account, there wasn't an option to not set a max limit. The only workaround I have found so far is to follow @Mac's suggestion of not using a profile attribute but rather to only use a DataExtension field that has no limit set. Make sure to delete any profile attributes of the same name to avoid getting the following error.
TriggeredSendSubscriberProcessingError,errorDescription=Error Code:10 - The subscriber is missing required attribute value for HTML__Body
As indicated by @Mac in the comments, you can do an unlimited-length variable replacement by using a data extension.
- Create a Data Extension using Standard Data Extension -> Creation Method: Create From Template -> TriggeredSendDataExtension.
- When you are on the Fields tab, create a Text property and remove the Length amount.
- Use this Data Extension when creating a Triggered Send in the interface or API.
- Be sure to include the property name in your Email and/or Template.
I was able to successfully send a 960k-character text block to that data extension property.