Send E-mail from Flash using .NET (in 5 Easy Steps)





5.00/5 (1 vote)
How to send e-mail from Flash using .NET in 5 easy steps
Sending emails from Flash using .NET is really simple - all you need is a Flash Interface that sends the request to an ASPX page. Here are the things you need.
- And ASPX Page that accepts the request (in this sample, let's call it EmailSender.aspx)
- A Flash frontend for users to post their messages (in this sample, let's call it EmailForm.fla)
- And Action Script class to process the message (in this sample, let's call it EmailForm.as)
Step 1
Create EmailForm.fla and add the following objects with the following properties:
Name: Type = Input Text, Name = txtName
Email Address: Type = Input Text, Name =txtEmailAddress
Subject: Type = Input Text, Name =txtSubject
Message: Type = Input Text, Name =txtMessage
Error: Type = Dynamic Text, Name =txtError
Send Email Button: Type = Button, Name =btnSendEmail
Email Form Properties
Step 2
Create an AS file, called EmailForm.as and save it in the same directory create and add these codes.
New AS
package
{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat;
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.net.navigateToURL;
public class EmailForm extends MovieClip
{
private var oTimer:Timer;
private var bCheckStatus:Boolean=false;
public function EmailForm()
{
init();
initListener();
}
private function init():void
{
}
private function initListener():void
{
btnSendEmail.addEventListener(MouseEvent.MOUSE_DOWN,controlFields);
}
private function controlFields(m:MouseEvent):void
{
if(txtName.text!=''&&txtEmailAddress.text!=''&&txtSubject.text!=''&&txtMessage.text!='')
{
if(CheckEmail(txtEmailAddress.text))
{
bCheckStatus=true;
sendEmail();
}
else
{
bCheckStatus=false;
txtError.text='Email Address is Invalid';
toggleAlert();
}
}
else
{
bCheckStatus=false;
txtError.text='You need to fill in required fields';
toggleAlert();
}
}
private function toggleAlert():void
{
oTimer=new Timer(2000,1);
oTimer.addEventListener('timer',cancel);
oTimer.start();
}
private function cancel(t:TimerEvent):void
{
txtError.text='';
if(bCheckStatus)
{
txtName.text='';
txtEmailAddress.text='';
txtSubject.text='';
txtMessage.text='';
}
bCheckStatus=false;
}
private function sendEmail():void
{
var oEmailFields:URLVariables=new URLVariables();
oEmailFields.sEmail=txtEmailAddress.text;
oEmailFields.sMessage=txtMessage.text;
oEmailFields.sSubject=txtSubject.text;
oEmailFields.sName=txtName.text;
var oRequest:URLRequest=new URLRequest();
oRequest.url='EmailSender.aspx';
oRequest.method=URLRequestMethod.POST;
oRequest.data=oEmailFields;
var oLoader:URLLoader=new URLLoader();
oLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
addListeners(oLoader);
try
{
loader.load(oRequest);
}
catch (error:Error)
{
trace('Page Not Found');
}
}
private function addListeners(d:IEventDispatcher):void
{
d.addEventListener(Event.OPEN,Initialize);
d.addEventListener(ProgressEvent.PROGRESS,inProgress);
d.addEventListener(Event.COMPLETE,Completed);
d.addEventListener(HTTPStatusEvent.HTTP_STATUS,HTTPStatus);
d.addEventListener(SecurityErrorEvent.SECURITY_ERROR,SecurityError);
d.addEventListener(IOErrorEvent.IO_ERROR,IOError);
}
private function Initialize(e:Event):void
{
txtError.text='Sending ...';
}
private function inProgress(e:ProgressEvent):void
{
txtError.text='Sending ...';
}
private function Completed(e:Event):void
{
var loader:URLLoader=URLLoader(e.target);
var vars:URLVariables=new URLVariables(loader.data);
if(vars.answer=='ok')
txtError.text='Message Sent';
else
txtError.text='Error (Message not Sent)!!!';
toggleAlert();
}
private function SecurityError(e:SecurityErrorEvent):void
{
txtError.text='Error (Security)!!!';
}
private function HTTPStatus(e:HTTPStatusEvent):void {}
private function IOError(e:IOErrorEvent):void
{
txtError.text='Error (IO)!!!';
}
public function CheckEmail(s:String):Boolean
{
var x:Number;
var y:Number=0;
var boolTest:Boolean=new Boolean();
for(var i:Number=0;i<s.length;i++)
{
if(s.charAt(i)==' ')
{
boolTest=false;
break;
}
if(s.charAt(i)=='@')
{
x=i;
y++;
}
else if(i>x&&s.charAt(i)=='.'&&s.charAt(s.length-1)!='.')
{
y++
boolTest=true
break;
}
else
{
if(i==s.length-1)
{
boolTest=false;
break;
}
}
}
return boolTest;
}
}
}
Step 3
Use that class on your EmailForm.fla:
Declare Class
Step 4
Create the EmailSender.aspx file and copy these codes:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["sEmail"] != null)
{
string sPOSTEmail = Request.Form["sEmail"].ToString();
string sPOSTMessage = Request.Form["sMessage"].ToString();
string sPOSTSubject = Request.Form["sSubject"].ToString();
string sPOSTName = Request.Form["sName"].ToString();
MailMessage oMailMessage = new MailMessage();
SmtpClient oSMTPClient = new SmtpClient();
MailAddress oFromAddress = new MailAddress(sPOSTEmail, sPOSTName);
string sEmailUser = "XXXXXXXXXXXXXX";
string sEmailPassword = "XXXXXXXXXXXXXXXXX";
string sEmailServer = "XXXXXXXXXXXXXXXXX";
int iEmailServerSMTPPort = 25;
oSMTPClient.Host = sEmailServer;
oSMTPClient.Port = iEmailServerSMTPPort;
System.Net.NetworkCredential oCredentials =
new System.Net.NetworkCredential(sEmailUser, sEmailPassword);
oSMTPClient.Credentials = oCredentials;
oMailMessage.From = oFromAddress;
oMailMessage.To.Add("XXXXXXXXXXXXXXXXXXXXXXX");
oMailMessage.Subject = sPOSTSubject;
oMailMessage.IsBodyHtml = true;
oMailMessage.Body = sPOSTMessage;
oSMTPClient.Send(oMailMessage);
}
}
}
Step 5
You're ready to rock and roll, you can publish your site now.