#!/www/perl/bin/perl -w ################################################## # Program : email_opt.cgi # # Author : Nicholas Dongarra # ################################################## use CGI; # use strict; require '/www/cmlive/cgi-lib/le-lib.pl'; ### REDIRECT BROWSER TO THANKS PAGE ### $qs = $ENV{'QUERY_STRING'}; my $obj_cgi = new CGI; $refer = $obj_cgi->param('refer'); if (defined($refer)) { $refer =~ s/[\\()%<>\"]/ /g; } $mode = $obj_cgi->param('mode'); if (defined($mode)) { $mode =~ s/[:\\()%<>\"]/ /g; } $email = $obj_cgi->param('email'); if (defined($email)) { $email =~ s/[:\\()%<>\"]/ /g; } $fname = $obj_cgi->param('fname'); if (defined($fname)) { $fname =~ s/[:\\()%<>\"]/ /g; } $lname = $obj_cgi->param('lname'); if (defined($lname)) { $lname =~ s/[:\\()%<>\"]/ /g; } $zipCode = $obj_cgi->param('zipCode'); if (defined($zipCode)) { $zipCode =~ s/[:\\()%<>\"]/ /g; } $orderNumber = $obj_cgi->param('orderNumber'); if (defined($orderNumber)) { $orderNumber =~ s/[:\\()%<>\"]/ /g; } $subjectCode = $obj_cgi->param('subject'); if (defined($subject)) { $subject =~ s/[:\\()%<>\"]/ /g; } $message = $obj_cgi->param('message'); if (defined($message)) { $message =~ s/[:\\()%<>\"]/ /g; } $store = $obj_cgi->param('store_name'); if (defined($store_name)) { $store_name =~ s/[:\\()%<>\"]/ /g; } $code = $obj_cgi->param('code'); if (defined($code)) { $code =~ s/[:\\()%<>\"]/ /g; } my $protocol = "http://"; if ($obj_cgi->https("User-Agent")) { $protocol = "https://"; } if (!defined($refer)) { $refer = "/"; } if (!defined($mode)) { $mode = "GRAPHICS"; } if (!defined($email)) { $email = ""; } if (!defined($fname)) { $fname = ""; } if (!defined($zipCode)) { $zipCode = ""; } if (!defined($orderNumber)) { $orderNumber = ""; } if (!defined($lname)) { $lname = ""; } if (!defined($subjectCode)) { $subjectCode = "-1"; } if (!defined($subject)) { $subject = ""; } if (!defined($message)) { $message = ""; } if (!defined($store)) { $store = "core"; } if (!defined($code)) { $code = "pass"; ## don't check error ## $code = "check"; ## check error } $qs = "refer=".$refer ."&email=".$email ."&fname=".$fname ."&lname=".$lname ."&zipCode=".$zipCode ."&orderNumber=".$orderNumber ."&subject=".$subject ."&message=".$message ."&store_name=".$store; $err = "NICK"; open (M4, "| /usr/bin/m4 -I./m4 -Rmacro_generic.m4f -DENT_ERR=$err -DDPS_MODE=$mode -DDPS_REFER=$refer ") ; select(M4); ($check1, $check2)= split(/\@/, $email); ($check3, $check4)= split(/\./, $email); ###### COMMENT OUT THE NEXT LINE FOR PRODUCTION AND UNCOMMENT FOR TESTING IN DEV ######## # $store = "test"; ####THIS IS THE LINE TO COMMENT IN/OUT $tester = "john.betz\@landsend.com"; ########################################################################################## if($store eq "test"){ $respondent1 = $tester; $respondent2 = $tester; $respondent3 = $tester; $respondent4 = $tester; $respondent5 = $tester; } elsif($store eq "corpsales"){ $respondent1 = "corpsale\@landsend.com"; $respondent2 = "corpsalescat\@landsend.com"; $respondent3 = "corpsaleshelp\@landsend.com"; $respondent4 = "corpsalesprod\@landsend.com"; $respondent5 = "orderstatus\@landsend.com"; } else { $respondent1 = "productinquiry\@landsend.com"; $respondent2 = "orderinquiry\@landsend.com"; $respondent3 = "websiteinquiry\@landsend.com"; $respondent4 = "cataloginquiry\@landsend.com"; $respondent5 = "landsend\@landsend.com"; } if($store ne "corpsales") { if(!$fname || !$lname || !$check1 || !$check2 || !$check3 || !$check4 || !$message || $subjectCode eq "-1" || $subjectCode eq "-2") { print defineM4Quotes(); print defineM4Macro("CGI2K_REFER", $refer); print defineM4Macro("CGI2K_MODE", $mode); if ($code eq "check") { print defineM4Macro("CGI2K_ERROR"); if(!$check1 || !$check2 || !$check3 || !$check4) { print defineM4Macro("ADDR_ERR", "Yes"); } if(!$fname) { print defineM4Macro("FNAME_ERR", "Yes"); } if(!$lname) { print defineM4Macro("LNAME_ERR", "Yes"); } if(!$message) { print defineM4Macro("MESS_ERR", "Yes"); } if($subjectCode eq "-1" || $subjectCode eq "-2") { print defineM4Macro("SUBJ_ERR", "Yes"); } } print defineM4Macro("CGI2K_CODE", "check"); print defineM4Macro("CGI2K_STORE_NAME", $store); print defineM4Macro("CGI2K_EMAIL", $email); print defineM4Macro("CGI2K_FNAME", $fname); print defineM4Macro("CGI2K_LNAME", $lname); print defineM4Macro("CGI2K_ZIP_CODE", $zipCode); print defineM4Macro("CGI2K_ORDER_NUMBER", $orderNumber); print defineM4Macro("CGI2K_SUBJECT", $subjectCode); print defineM4Macro("CGI2K_MESSAGE", $message); $epoch = (time); print defineM4Macro("CGI2K_EPOCH_TIME", $epoch); print defineM4Macro("FRAME2K_SUPPRESS_GUARANTEE"); print defineM4Macro("FRAME2K_SUPPRESS_LEFTNAV_LOGIN"); print defineM4Macro("CGI2K_OMNI_S_PAGENAME", "CONTACT US - INITIAL PAGE"); print defineM4Macro("CGI2K_OMNI_S_CHANNEL", "CUSTOMER SERVICE"); print defineM4Macro("CGI2K_OMNI_S_EVENTS", "event5"); print defineM4Macro("CGI2K_OMNI_S_EVAR7", "Contact Us"); print defineM4Macro("BASE_DNS", "www.landsend.com"); print defineM4Macro("CGI2K_SERVER_URL", $protocol . "www.landsend.com"); print useM4Macro("include", "m42k_ask_us.m4"); } else{ ### Use the following email addesses for DEV and QA ### if($subjectCode eq "1") { $subject = "Product Questions"; $send_to = $respondent1; } elsif($subjectCode eq "2") { $subject = "Order Inquiries"; $send_to = $respondent2; } elsif($subjectCode eq "3") { $subject = "Web Site Issues"; $send_to = $respondent3; } elsif($subjectCode eq "4") { $subject = "Catalog Concerns"; $send_to = $respondent4; } elsif($subjectCode eq "5") { $subject = "General Comments"; $send_to = $respondent5; } print "Location: /cgi-bin/pg.cgi?page=CONTACTTHANKS0900\n\n"; &SENDIT; } } if($store eq "corpsales") { if (!$fname || !$lname || !$check1 || !$check2 || !$check3 || !$check4 || !$message || $subjectCode eq "-1") { $error = "\&error\=yes"; if($tester){ print "Location: http://leuscd02.landsend.com/cgi-bin/ncommerce3/ExecMacro/CSM_CONTACT_US.d2w/report?$qs$error\n\n"; } else{ print "Location: http://ocs.landsend.com/cgi-bin/ncommerce3/ExecMacro/CSM_CONTACT_US.d2w/report?$qs$error\n\n"; } } else{ if($subject == "Questions and Comments"){ $send_to = $respondent1;} elsif($subject == "Catalog Concerns"){ $send_to = $respondent2;} elsif($subject == "Web Site Issues"){ $send_to = $respondent3;} elsif($subject == "Product Questions"){ $send_to = $respondent4;} elsif($subject == "Order Questions"){ $send_to = $respondent5;} if($tester){ print "Location: http://leuscd02.landsend.com/cgi-bin/ncommerce3/ExecMacro/CSM_EMAIL_THANKS.d2w/report?$qs$error\n\n"; } else{ print "Location: http://ocs.landsend.com/cgi-bin/ncommerce3/ExecMacro/CSM_EMAIL_THANKS.d2w/report?$qs\n\n"; } &SENDIT; } } sub SENDIT{ open(SENDMAIL, "|/usr/lib/sendmail -oi -t") or die "Can't sendmail:$!\n"; print SENDMAIL <<"EOF"; From: <$email> To: <$send_to> Subject: $subject The following message concerning $subject was received from $fname $lname <$email>. Zip Code: $zipCode Order Number: $orderNumber -------------------------------------------------------- $message EOF close(SENDMAIL) or warn "Sendmail did not close nicely"; };