# Creating a Job script to validate email addresses using custom code components

This example shows how to write a Job script to define a Job that will validate email addresses. The Job will first find out duplicate email addresses, then validate the deduplicated email addresses, and display the deduplication and validation results on the console.

The Job will contain the following components:

* a tFileInputDelimited component, to read the source file that contain valid, invalid, and duplicate email addresses, as shown below.

  ```
  jsmith@company.com
  rmartin.company.com
  sgoodman@companycom
  gbush@company.com
  jjohnson@company com
  jsmith@company.com
  jjohnson@company com
  sgoodman@companycom
  ```

* a tUniqRow component, to identify duplicate addresses.

* two tJavaRow components, to validate the deduplicated addresses and output the deduplication and validation results.

* a tLibraryLoad component, to load the Java library required to execute the Java code for email address validation.

### In this section

* [Defining the input component to read the email addresses](https://help.qlik.com/talend/en-US/job-script-reference-guide/8.0/defining-input-component-to-read-email-addresses)
* [Deduplicating the email addresses](https://help.qlik.com/talend/en-US/job-script-reference-guide/8.0/deduplicating-email-addresses)
* [Validating email addresses and showing duplicates](https://help.qlik.com/talend/en-US/job-script-reference-guide/8.0/validating-email-addresses-and-showing-duplicates)
* [Loading Java library to validate email addresses](https://help.qlik.com/talend/en-US/job-script-reference-guide/8.0/loading-java-library-to-validate-email-addresses)
* [Defining connections](https://help.qlik.com/talend/en-US/job-script-reference-guide/8.0/defining-connections)
* [Generating and executing the Job to validate email addresses](https://help.qlik.com/talend/en-US/job-script-reference-guide/8.0/generating-and-executing-job-to-validate-email-addresses)