<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Interactive IQ : The Hessler Design Blog &#187; email</title>
	<atom:link href="http://www.hesslerdesign.com/blog/tag/email/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hesslerdesign.com/blog</link>
	<description>Smart Developers = Smart Websites</description>
	<lastBuildDate>Thu, 26 Jan 2012 23:00:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>User Experience Lesson from Google</title>
		<link>http://www.hesslerdesign.com/blog/web-design/user-experience-lesson-from-google/</link>
		<comments>http://www.hesslerdesign.com/blog/web-design/user-experience-lesson-from-google/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 02:31:19 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://www.hesslerdesign.com/blog/?p=602</guid>
		<description><![CDATA[As a web guy, I like good user experiences.  I try not to make users think.  And I try to make the user experience as intuitive as I possibly can. Today, I was once again flabbergasted by a great little feature I accidentally discovered using Google&#8217;s Gmail.  It reminded me that as good as a [...]]]></description>
			<content:encoded><![CDATA[<p>As a web guy, I like good user experiences.  I try not to make users think.  And I try to make the user experience as intuitive as I possibly can.</p>
<p>Today, I was once again flabbergasted by a great little feature I accidentally discovered using Google&#8217;s Gmail.  It reminded me that as good as a user experience gets, there&#8217;s always room for improvement.</p>
<p>(It also made me think of the quote from TRON, which is applicable to web design and user experiences as well: <em>&#8220;On the other side of the screen, it all looks so easy.&#8221;</em>)</p>
<p>So what was this great little feature of Gmail?  I was typing a message and had every intention of attaching a PDF file.  Problem is, I totally forgot to attach the PDF file.  Luckily, Google was smart enough to know that I wanted to attach the file, and prompted me, asking if I wanted to attach anything.</p>
<p>&#8220;How&#8217;d they do that?&#8221; you ask?  Well, in my message, I had included the words &#8220;Attached is&#8230;&#8221;, referencing the PDF file I was going to attach and wanted the recipient to look for.  Apparently, Google thought that, like me, people would forget to attach files more than just once.  So they put in logic to search each message for certain keywords (&#8220;attached is&#8221;, in my case), and if the email has no attachments, they&#8217;ll give you a popup message that tells you they found those keywords in your message, and ask if you really want to send the email as-is, or if you want to attach a file.</p>
<p>Chalk one up for Google in teaching us all another lesson on a subtle but well thought-out user experience.</p>
<p>Until next time, happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hesslerdesign.com/blog/web-design/user-experience-lesson-from-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Better Email Validator in Flash</title>
		<link>http://www.hesslerdesign.com/blog/flash/building-a-better-email-validator-in-flash/</link>
		<comments>http://www.hesslerdesign.com/blog/flash/building-a-better-email-validator-in-flash/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 21:55:25 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://www.hesslerdesign.com/blog/?p=147</guid>
		<description><![CDATA[I work on a lot of Flash projects that require form validation. One issue that keeps coming up is the process of field validation, and more specifically, email validation. There are numerous rules that people use to validate email addresses (does it contain an @ sign, does it contain a dot, how many characters are [...]]]></description>
			<content:encoded><![CDATA[<p>I work on a lot of Flash projects that require form validation. One issue that keeps coming up is the process of field validation, and more specifically, email validation. There are numerous rules that people use to validate email addresses (does it contain an @ sign, does it contain a dot, how many characters are there, etc.), but there is a fine line between overly strict validation and validation that&#8217;s way too loose. So I did some investigating about what makes up an email address, and how to best validate an email address in Flash. The result of my work is a robust EmailValidator class that I authored, written in ActionScript 3.0. <span id="more-147"></span></p>
<p>&nbsp;</p>
<h4>The Validation Logic</h4>
<p>Here&#8217;s a quick rundown of what this EmailValidator class validates:</p>
<ul>
<li>Must contain three parts: [1] Local part, [2] @ sign, [3] Domain</li>
<li>Local part must contain at least one of the following valid characters:
<ul>
<li>Upper and lowercase letters (A-Z, a-z)</li>
<li>Numeric Digits (0-9)</li>
<li>Other characters:  ! # $ % &amp; &#8216; * + &#8211; / = ? ^ _ ` { | } ~</li>
<li>Periods (provided it is not the first or last character, and does not appear more than two times consecutively)</li>
</ul>
</li>
<li>Domain must contain at least one period, as well as at least one character before the period as well as a valid top-level domain (i.e. com, org, ca, uk) after the last period.  Valid domain characters include:
<ul>
<li>Upper and lowercase English letters (A-Z, a-z)</li>
<li>Numeric Digits (0-9)</li>
<li>Hyphens</li>
<li>Periods (provided it is not the first or last character, and does not appear more than two times consecutively)</li>
</ul>
</li>
</ul>
<p>With that list of validation logic written, I must also confess that, technically speaking, quoted strings and spaces (so long as they are within quotes) are valid in the local-part of an email. However, on the Internet Engineering Task Force (IETF) website, <a href="http://tools.ietf.org/html/rfc5321" target="_blank">RFC 5321 Section 4.1.2</a> contends that,</p>
<blockquote><p><em>&#8220;&#8230;a host that expects to receive mail SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form&#8230;&#8221;</em></p></blockquote>
<p>Since the practice of using quoted strings is discouraged by RFC 5321, the logic in my EmailValidator class does NOT allow quoted strings, including the double-quote character and spaces.</p>
<p>&nbsp;</p>
<h4>An Example</h4>
<p>I have included a small Flash email validator file below that you can test the validity of an inputted email address.  It utilizes the EmailValidator class that I have written.  Feel free to test out a range of email addresses.  Note that the validator gives useful feedback about invalid addresses, specifying what the first encountered issue is when checking whether or not the address valid.</p>
<p>&nbsp;</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="414" height="108" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0"><param name="src" value="http://www.hesslerdesign.com/blog/wp-content/uploads/2009/09/email.swf" /><embed type="application/x-shockwave-flash" width="414" height="108" src="http://www.hesslerdesign.com/blog/wp-content/uploads/2009/09/email.swf"></embed></object></p>
<p>&nbsp;</p>
<h4>Known Issues &#038; Exceptions:</h4>
<ol>
<li>Many email providers out there will only accept letters, digits and hyphens as valid in the local part of the email. Though this is becoming more common, the EmailValidator class will still allow any of the valid characters listed above, even if it results in an invalid email address for a specific email client (i.e. */+@gmail.com). This is done to follow the direction of RFC 5322, and the list of valid atom characters listed in Section 3.2.3 that can be included in the local part of an email. Until this list is deprecated (if ever), it&#8217;s an exception I&#8217;m willing to live with.</li>
<li>Though the EmailValidator checks for a valid domain (including only alpha characters, numbers and hyphens, as well as valid top-level domain), there&#8217;s no way to tell whether the domain actually exists. (For example, me@fake.net will validate, though www.fake.net may not be a valid site/domain.)</li>
</ol>
<p>&nbsp;</p>
<h4>Resources:</h4>
<p><a href="http://www.ietf.org/rfc.html" target="_blank">Internet Engineering Task Force (IETF)</a><br />
<a href="http://www.iana.org/domains/root/db/" target="_blank">Internet Assigned Numbers Authority (IANA)</a></p>
<p>&nbsp;</p>
<p>Interested in getting this EmailValidator class for your own use? <a href="http://www.hesslerdesign.com/#/contact">Contact me</a> to request a copy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hesslerdesign.com/blog/flash/building-a-better-email-validator-in-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

