document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/pygment_trac.css" />');
document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/embed.css" />');
document.write('<div class="flowcoder_post flowcoder_clearfix">');
document.write('<div class="flowcoder_posttitle"><a href=\"http://flowcoder.com/145\">Send rich (HTML) XMPP message<\/a></div>');
document.write('<div class="flowcoder_postbody flowcoder_syntax"><div class=\"highlight\"><pre><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;xmpp4r/client&#39;<\/span>\n<span class=\"kp\">include<\/span> <span class=\"no\">Jabber<\/span>\n\n<span class=\"c1\"># Login<\/span>\n<span class=\"n\">jid<\/span> <span class=\"o\">=<\/span> <span class=\"no\">JID<\/span><span class=\"o\">::<\/span><span class=\"kp\">new<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;me@jabber.org/Work&#39;<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">password<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;--some_secret--&#39;<\/span>\n<span class=\"n\">cl<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Client<\/span><span class=\"o\">::<\/span><span class=\"kp\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">jid<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">cl<\/span><span class=\"o\">.<\/span><span class=\"n\">connect<\/span>\n<span class=\"n\">cl<\/span><span class=\"o\">.<\/span><span class=\"n\">auth<\/span><span class=\"p\">(<\/span><span class=\"n\">password<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Create a message<\/span>\n<span class=\"n\">to<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&quot;you@xmpp.org&quot;<\/span>\n<span class=\"n\">subject<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&quot;XMPP4R Rich-Text Test&quot;<\/span>\n<span class=\"n\">body<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&quot;Wow, I can do HTML now. But if you see this, your client doesn&#39;t support it&quot;<\/span>\n<span class=\"n\">m<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Message<\/span><span class=\"o\">::<\/span><span class=\"kp\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">to<\/span><span class=\"p\">,<\/span> <span class=\"n\">body<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">set_type<\/span><span class=\"p\">(<\/span><span class=\"ss\">:normal<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">set_id<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;1&#39;<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">set_subject<\/span><span class=\"p\">(<\/span><span class=\"n\">subject<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Create the html part<\/span>\n<span class=\"n\">h<\/span> <span class=\"o\">=<\/span> <span class=\"no\">REXML<\/span><span class=\"o\">::<\/span><span class=\"no\">Element<\/span><span class=\"o\">::<\/span><span class=\"kp\">new<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;html&quot;<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">h<\/span><span class=\"o\">.<\/span><span class=\"n\">add_namespace<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;http://jabber.org/protocol/xhtml-im&#39;<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># The body part with the correct namespace<\/span>\n<span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"no\">REXML<\/span><span class=\"o\">::<\/span><span class=\"no\">Element<\/span><span class=\"o\">::<\/span><span class=\"kp\">new<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;body&quot;<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">b<\/span><span class=\"o\">.<\/span><span class=\"n\">add_namespace<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;http://www.w3.org/1999/xhtml&#39;<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># The html itself<\/span>\n<span class=\"n\">t<\/span> <span class=\"o\">=<\/span> <span class=\"no\">REXML<\/span><span class=\"o\">::<\/span><span class=\"no\">Text<\/span><span class=\"o\">.<\/span><span class=\"n\">new<\/span><span class=\"p\">(<\/span> <span class=\"s2\">&quot;This is so &lt;strong&gt;&lt;span style=&#39;background: #003EFF; &#39;&gt;&lt;span style=&#39;font-size: large; &#39;&gt;COOL!!!&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;. I can really do &lt;strong&gt;HTML&lt;/strong&gt; now.&quot;<\/span><span class=\"p\">,<\/span> <span class=\"kp\">false<\/span><span class=\"p\">,<\/span> <span class=\"kp\">nil<\/span><span class=\"p\">,<\/span> <span class=\"kp\">true<\/span><span class=\"p\">,<\/span> <span class=\"kp\">nil<\/span><span class=\"p\">,<\/span> <span class=\"sr\">%r/.^/<\/span> <span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Add the html text to the body, and the body to the html element<\/span>\n<span class=\"n\">b<\/span><span class=\"o\">.<\/span><span class=\"n\">add<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">h<\/span><span class=\"o\">.<\/span><span class=\"n\">add<\/span><span class=\"p\">(<\/span><span class=\"n\">b<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Add the html element to the message<\/span>\n<span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"n\">add_element<\/span><span class=\"p\">(<\/span><span class=\"n\">h<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Send it<\/span>\n<span class=\"n\">cl<\/span><span class=\"o\">.<\/span><span class=\"n\">send<\/span> <span class=\"n\">m<\/span>\n<\/pre><\/div>\n</div>');
document.write('<div class="flowcoder_bottombar flowcoder_clearfix">');
document.write('<div class="flowcoder_postedby">Posted by <a href=\"http://flowcoder.com/zh\">zh<\/a> on <a href=\"http://flowcoder.com/\">Flowcoder<\/a></div>');
document.write('<div class="flowcoder_viewraw"><a href=\"http://flowcoder.com/145.txt\">view raw<\/a></div>');
document.write('</div></div>');
