Three Ways to Program Email Within Applications

Have you ever wondered how an email message is programmatically sent out from an application? Here I will show three different ways that sent email can be coded in different software platforms.

The first programming snippet comes from a Windows Phone mobile app. It’s actually quite simple. This is for Windows Phone 8 and the C# Sharp coding. An email account needs to first be set up on the phone.

  1. view plainprint?  
  2. // create email object.    
  3. EmailComposeTask emailComposeTask = new EmailComposeTask();    
  4.     
  5. // add a subject.    
  6. emailComposeTask.Subject = "test subject";    
  7. // add a message.    
  8. emailComposeTask.Body = "test message";    
  9. // add a recipient.    
  10. emailComposeTask.To = "[email protected]";    
  11. // add a carbon copy recipient.    
  12. emailComposeTask.Cc = "[email protected]";    
  13. // add a blind carbon copy recipient.    
  14. emailComposeTask.Bcc = "[email protected]";    
  15.     
  16. // bring up the email interface.    
  17. emailComposeTask.Show();   
Next, I will show how to transmit an email in PHP coding. This is taken from the email contact page on my website and it works very reliably. This does not require an email client to be set up.
  1. <?php    
  2.     
  3. session_start();    
  4. // include this php file to process the ‘captcha’ code to verify the     
  5. // sender is human, not a robot.    
  6. include("simple-php-captcha.php");    
  7.     
  8. // initialize php error variables to check for valid fields of information.    
  9. $flagvar = 0;    
  10. $flagvar1 = 0;    
  11. $flagvar2 = 0;    
  12. $flagvar3 = 0;    
  13. $flagvarx = 0;    
  14.     
  15. // assign the auto generated ‘captcha’ code to a    
  16. // php session variable used to display it to the email sender.    
  17. $_SESSION['captcha'] = captcha();    
  18.     
  19. // enter here after the user clicks the ‘Submit’ button    
  20. // to send out the email.    
  21. if ($_POST['submit_email']) {    
  22.     
  23.   // check the sender’s email address to make sure it is valid and set error variables.    
  24.   if(strlen($_POST['EMAIL']) <= 0) {    
  25.   $flagvar1 = 1;    
  26.   $flagvar = 1;    
  27.   } else if (!preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/'$_POST['EMAIL'])) {    
  28.   $flagvar1 = 1;    
  29.   $flagvar = 1;    
  30.   }    
  31.    // make sure there is something in the subject line and set error variables.    
  32.    if ( emptyempty($_POST['SUBJECT']) ) {    
  33.    $flagvar2 = 1;    
  34.    $flagvar = 1;    
  35.    }    
  36.     // make sure there is something in the message body and set error variables.    
  37.     if ( emptyempty($_POST['MESSAGEBOARD']) ) {    
  38.     $flagvar3 = 1;    
  39.     $flagvar = 1;    
  40.     }    
  41.     
  42.   // ‘captcha’ codes match, then proceed.    
  43.   if ( $_REQUEST['skip_CaptchaCode'] === $_SESSION['firstcaptcha'] && $flagvar == 0 ) {    
  44.     
  45.   // take out all html and php tags from the message body.    
  46.   $text = strip_tags($_POST['MESSAGEBOARD']);    
  47.   // concatenate two line feeds followed by the text “Email Sender”     
  48.   // followed by the sender’s email address.    
  49.   $text = $text."\n\nEmail Sender: ".$_POST['EMAIL'];    
  50.   // set the headers to nothing.    
  51.   $headers = "";    
  52.   // use the php mail function to send the email to my email address so    
  53.   // I can receive inquiries from prospective customers.    
  54.   mail('[email protected]'$_POST['SUBJECT'], $text$headers);    
  55.     
  56.   // display my web page to notify the sender that the submitted email has    
  57.   // been successfully sent to me.    
  58.   header("Location: http://www.analyzohiosoftware.com/email-verify.html");      
  59.     
  60.   }    
  61.     
  62.    // ‘captcha’ codes do not match, so set an error flag.    
  63.    if ( $_REQUEST['skip_CaptchaCode'] != $_SESSION['firstcaptcha'] ) {    
  64.    $flagvarx = 1;    
  65.    }    
  66.     
  67. }    
  68.     
  69. ?>   
Lastly, I will show email programming to send something from a Corel Paradox application. Like the Windows Phone example, this requires an email client to be set up.
  1. method pushButton(var eventInfo Event)      
  2. var                       
  3. ;// declare variables and objects.    
  4.  EmailCounter     Smallint    
  5.  tblVar                 Table    
  6.  tc                        Tcursor            
  7.  m                        MAIL    
  8.  emailvar             String    
  9. endVar                       
  10.     
  11.     
  12. ;// change cursor to hour glass.    
  13. setMouseShape(MouseWait,TRUE)    
  14.     
  15.     
  16. ;// open a Tcursor to the data table containing the list of    
  17. ;// email addresses to blast to.    
  18.  if tc.open(":PDOXDATA:EmailBlast.db") then    
  19.     
  20. ;// log onto the mail system.    
  21. m.logon("MyPassword""MyMailProfile")    
  22.     
  23. ;// start edit mode    
  24. tc.edit()    
  25.     
  26. ;// move Tcursor to the first record in the data table.    
  27. tc.home()    
  28.     
  29. ;// initialize the counter for the number of emails sent out.    
  30. EmailCounter = 0    
  31.     
  32.  ;// begin the “while loop” for traversing the data table to send out    
  33.  ;// emails for each address.    
  34.  while NOT tc.eot()    
  35.     
  36.   ;// if the record isn’t marked as already processed,    
  37.   ;// go ahead and construct the email.    
  38.   if (tc."Finished" <> "y") then    
  39.     
  40.   ;// add email address.    
  41.   m.addAddress(tc."E-mail")    
  42.   ;// add subject line.    
  43.   m.setSubject("An Email Blast")    
  44.   ;// add email message.    
  45.   m.setMessage("Here is an email blast we are sending out…success is expected…")    
  46.   ;// add attachment.    
  47.   m.addAttachment("c:\\document_folder\\sample.doc")    
  48.   ;// send email.    
  49.   m.send()    
  50.     
  51.   ;// clear away addresses and attachments.    
  52.   m.emptyAddresses()    
  53.   m.emptyAttachments()     
  54.     
  55.   ;// mark the just sent email as being processed in the data table.    
  56.   tc."Finished" = "y"    
  57.     
  58.   ;// increment the sent email counter by 1.    
  59.   EmailCounter = EmailCounter + 1    
  60.     
  61.   ;// end of if-then logic for unsent emails.    
  62.   endif    
  63.     
  64.     
  65.  ;// move to the next sequential record in the data table.    
  66.  tc.nextRecord()               
  67.     
  68.     
  69.   ;// temporarily suspend processing if 25 emails have been blasted out.    
  70.   ;// reset the “EmailCounter” variable to 0 and then display message to console.    
  71.   if (EmailCounter > 25) then    
  72.   EmailCounter = 0    
  73.   msgStop("Message""Click to continue after these 25 emails went out...")    
  74.   endif    
  75.     
  76.  ;// loop around again to process the next sequential email in the data table.    
  77.  endWhile            
  78.     
  79. ;// end edit mode    
  80. tc.endEdit()                
  81. ;// close a Tcursor to the data table containing the list of email addresses to blast to.    
  82. tc.close()                     
  83.     
  84. ;// log off the mail system.    
  85. m.logoff()    
  86.     
  87. ;// end of if-then logic for opening a Tcursor to    
  88. ;// ":PDOXDATA:EmailBlast.db" data table.    
  89. endif    
  90.     
  91.     
  92.     
  93.     
  94. ;// change cursor back to mouse pointer.    
  95. setMouseShape(MouseArrow,TRUE)    
  96.     
  97.     
  98.     
  99. EndMethod             
The three examples described here generally follow the same idea for programmatically constructing sent email. This is one of the most useful skills a developer can learn in today’s world. Whether it is needed for a smart phone app, web page or desktop application, it’s a skill one can't do without.