hi all …
i got this email form :
click here ( or right click then save target as to save it )
I use this Code on the First Frame:
import flash.net.FileReference;
import mx.controls.*;
var dataSender:LoadVars = new LoadVars();
var dataReceiver:LoadVars = new LoadVars();
var name_txt, email_txt, subject_txt, attachment_ti:TextInput;
var message_txt:TextArea;
var submit_btn, remove_btn, browse_btn:Button;
var r1, r2:RadioButton;
var attachment:FileReference;
var mainTL:MovieClip = this;
//## styles
import mx.styles.CSSStyleDeclaration;
_global.styles.TextInput = new CSSStyleDeclaration();
_global.styles.TextArea = new CSSStyleDeclaration();
_global.styles.RadioButton = new CSSStyleDeclaration();
_global.styles.RadioButton.setStyle("fontSize", 10);
_global.style.textAlign = "right";
_global.style.fontFamily = "Tahoma";
_global.style.color = 0x3399ff;
_global.style.borderStyle = "default";
_global.style.themeColor = 0x3399ff;
_root.submit_btn.setStyle("backgroundColor ", 0x3399ff);
_root.alert_txt.setStyle("color", 0xD11616);
_root.border.setStyle("themeColor", 0x3399ff);
_root.border.setStyle("borderStyle", "menuBorder");
//##end styles
submit_btn._alpha = 20;
var formCheck:Object = new Object();
formCheck.change = function()
{
if (_root.name_txt.text != '' && _root.email_txt.text != '' && _root.subject_txt.text != '' && _root.message_txt.text != '')
{
//clear any alert messages
alert_txt.text = '';
//enable the submit button
submit_btn._alpha = 100;
}
else
{
//remain disabled until all fields have content
submit_btn._alpha = 20;
}
};
this.name_txt.addEventListener("change", formCheck);
this.email_txt.addEventListener("change", formCheck);
this.subject_txt.addEventListener("change", formCheck);
this.message_txt.addEventListener("change", formCheck);
//
function makeAtive(bol:Boolean)
{
submit_btn.enabled = bol;
name_txt.enabled = bol;
email_txt.enabled = bol;
subject_txt.enabled = bol;
message_txt.enabled = bol;
}
//define attachment :
var fileListener:Object = new Object();
fileListener.onSelect = function(file:FileReference)
{
attachment_ti.text = file.name;
sendEmail(file.name);
file.upload("mailer.php");
};
fileListener.onComplete = function(file:FileReference)
{
sendEmail(file.name);
};
attachment = new FileReference();
attachment.addListener(fileListener);
//define a listener for all buttons :
clickListener = new Object();
clickListener.click = function(evt)
{
button = evt.target;
switch (button._name)
{
case "submit_btn" :
if (name_txt.text != '' && email_txt.text != '' && subject_txt.text != '' && message_txt.text != '')
{
alert_txt.text = '';
mainTL.play();
dataSender.name = name_txt.text;
dataSender.email = email_txt.text;
dataSender.subject = subject_txt.text;
dataSender.message = message_txt.text;
dataSender.Option = radioGroup.selection.data;
if (_root.attachment_ti.text != "")
{
dataSender.File = _root.attachedFileName;
}
dataReceiver.onLoad = function()
{
if (this.response == "invalid")
{
mainTL.gotoAndStop(1);
alert_txt.text = "Entee invalid Email Adress!";
makeAtive(truw);
Selection.setFocus("_root.email_txt");
}
else if (this.response == "passed")
{
mainTL.gotoAndStop(4);
makeAtive(false);
}
};
//now send data to script
dataSender.sendAndLoad("mailer.php", dataReceiver, "POST");
}
else
{
//warning if they try to submit before completing
alert_txt.text = "Please Complete All Fields!";
}
break;
case "browse_btn" :
button._parent.attachment.browse();
break;
case "remove_btn" :
button._parent.attachment_ti.text = "";
}
};
this.submit_btn.addEventListener("click", clickListener);
this.browse_btn.addEventListener("click", clickListener);
//
function sendEmail(fileName)
{
fileVars = new LoadVars();
fileName.upload("filePick.php");
fileVars.load("filePick.php");
fileVars.onLoad = function()
{
_root.attachedFileName = this.afterAtt;
};
}
by using two php files:
-mailer.php
<?
/*****************************************************************************/
$send_to = "[EMAIL="a@domain.com"]a@domain.com[/EMAIL]";
$send_from = "[EMAIL="a@domain.com"]a@domain.com[/EMAIL]";
$subject = "hello";
$autoresponder_from = $send_to;
$thanks_msg = "thank you";
$autoresponder_subject = "Re: hello";
$autoresponder_message = "... ";
/***************************************************************************/
if($_POST){
do_formmail();
};
function do_formmail(){
$form = get_form_data();
send_mail($form);
if ($autoresponder_enabled) auto_respond($form);
done();
}
function get_form_data(){
$vars = ($_SERVER['REQUEST_METHOD'] == 'GET') ? $_GET : $_POST;
//strip spaces from all fields
foreach ($vars as $k=>$v) $vars[$k] = trim($v);
return $vars;
}
function _build_fields($vars){
$skip_fields = array(
'name_from',
'email_from',
'email_to',
'name_to',
'subject');
foreach ($vars as $k=>$v)
if (in_array($k, $skip_fields)) unset($vars[$k]);
$max_length = 10; // max length of key field
foreach ($vars as $k=>$v) {
$klen = strlen($k);
if (($klen > $max_length) && ($klen < 40))
$max_length = $klen;
}
// make output text
$out = "";
foreach ($vars as $k=>$v){
$k = str_replace('_', ' ', $k);
$k = ucfirst($k);
$len_diff = $max_length - strlen($k);
if ($len_diff > 0)
$fill = str_repeat('.', $len_diff);
else
$fill = '';
$out .= $k."$fill...: $v
";
}
return $out;
}
function send_mail($vars){
global $send_to, $send_from;
global $subject;
global $REMOTE_ADDR;
global $_FILES;
$files = array(); //files (field names) to attach in mail
if (count($_FILES)){
$files = array_keys($_FILES);
}
// build mail
$date_time = date('Y-m-d H:i:s');
$mime_delimiter = md5(time());
$fields = _build_fields($vars);
$mail = <<<EOF
This is a MIME-encapsulated message
--$mime_delimiter
Content-type: text/plain
Content-Transfer-Encoding: 8bit
you have resived message:
$fields
--------------------
REMOTE IP : $REMOTE_ADDR
DATE/TIME : $date_time
EOF;
if (count($files)){
foreach ($files as $file){
$file_name = $_FILES[$file]['name'];
$file_type = $_FILES[$file]['type'];
$file_tmp_name = $_FILES[$file]['tmp_name'];
$file_cnt = "";
$f=@fopen($file_tmp_name, "rb");
if (!$f)
continue;
while($f && !feof($f))
$file_cnt .= fread($f, 4096);
fclose($f);
if (!strlen($file_type)) $file_type="applicaton/octet-stream";
if ($file_type == 'application/x-msdownload')
$file_type = "applicaton/octet-stream";
$mail .= "
--$mime_delimiter
";
$mail .= "Content-type: $file_type
";
$mail .= "Content-Disposition: attachment; filename=\"$file_name\"
";
$mail .= "Content-Transfer-Encoding: base64
";
$mail .= chunk_split(base64_encode($file_cnt));
}
}
$mail .= "
--$mime_delimiter--";
mail($send_to, $subject, $mail,"Mime-Version: 1.0
From: $send_from
Content-Type: multipart/mixed;
boundary=\"$mime_delimiter\"
Content-Disposition: inline");
print "&response = passed";
}
function done(){
echo "message was sent sucssesfuly";
}
function auto_respond($vars){
global $autoresponder_from, $autoresponder_message, $autoresponder_subject;
$_send_to = "$vars[name_from] <".$vars[email_from].">";
$_send_from = $autoresponder_from;
mail($_send_to, $subj, $msg, "From: $_send_from");
}
?>
-filePick.php:
<?
$attFile = $_FILES['Filedata']['tmp_name'];
print "&afterAtt=$attFile";
?>
everything goes fine, except that :
**it send two emails, one with “the text message” **
and the other is "empty text with an attachment"
i want to make it in one message.
[COLOR=gray]any ideas[/COLOR]?..
my thanks .
…