Developer Tools for Random Data Generation // v2.6.1
root@generate-random:~/email/java$ _

Generate Random Email Addresses in Java - Testing & QA

Complete code tutorial with examples and best practices

[ Code Example - Quick Summary ]

Language: Java

What: Generate random email addresses in Java for testing, QA, and mock data with JavaFaker library and custom patterns.

Try it: Use our interactive Email generator or integrate this code into your Java application.

Generate random email addresses in Java for testing, QA, and mock data with JavaFaker library and custom patterns. Looking for other languages? Check our code examples in PHP , JavaScript , Python , C# , C++ , Ruby and Go or use our interactive web generator.

Java Code Example

import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class EmailGenerator {
    private static final Random random = new Random();
    private static final String[] ADJECTIVES = {"happy", "sunny", "clever", "bright", "quick"};
    private static final String[] NOUNS = {"panda", "tiger", "eagle", "dolphin", "falcon"};

    public static void main(String[] args) {
        // Random Email
        System.out.println("Random Email: " + randomEmail("example.com"));

        // Readable Email
        System.out.println("Readable Email: " + readableEmail("example.com"));

        // Name-based Email
        System.out.println("Name-based: " + emailFromName("John", "Doe", "company.com"));

        // Test Email
        System.out.println("Test Email: " + testEmail("test.local"));

        // Multiple Emails
        List<String> emails = generateEmails(3, "example.com");
        System.out.println("Multiple Emails: " + emails);

        // Validate
        String email = randomEmail("example.com");
        System.out.println("Valid: " + (isValidEmail(email) ? "Yes" : "No"));
    }

    public static String randomEmail(String domain) {
        String username = generateRandomString(12);
        return username + "@" + domain;
    }

    public static String readableEmail(String domain) {
        String adj = ADJECTIVES[random.nextInt(ADJECTIVES.length)];
        String noun = NOUNS[random.nextInt(NOUNS.length)];
        int num = random.nextInt(900) + 100;
        return adj + noun + num + "@" + domain;
    }

    public static String emailFromName(String firstName, String lastName, String domain) {
        String[] patterns = {
            firstName.toLowerCase() + "." + lastName.toLowerCase(),
            firstName.substring(0, 1).toLowerCase() + lastName.toLowerCase(),
            firstName.toLowerCase() + lastName.substring(0, 1).toLowerCase(),
            firstName.toLowerCase() + "_" + lastName.toLowerCase()
        };
        String username = patterns[random.nextInt(patterns.length)];
        return username + "@" + domain;
    }

    public static String testEmail(String domain) {
        long timestamp = System.currentTimeMillis() / 1000;
        int randomNum = random.nextInt(9000) + 1000;
        return "test_" + timestamp + "_" + randomNum + "@" + domain;
    }

    public static List<String> generateEmails(int count, String domain) {
        List<String> emails = new ArrayList<>();
        long baseTime = System.currentTimeMillis();
        for (int i = 0; i < count; i++) {
            emails.add("user" + baseTime + i + "@" + domain);
        }
        return emails;
    }

    public static boolean isValidEmail(String email) {
        String regex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$";
        return email.matches(regex);
    }

    private static String generateRandomString(int length) {
        String chars = "abcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < length; i++) {
            sb.append(chars.charAt(random.nextInt(chars.length())));
        }
        return sb.toString();
    }

    // Using JavaFaker (add dependency: com.github.javafaker:javafaker:1.0.2)
    // import com.github.javafaker.Faker;
    // Faker faker = new Faker();
    // String email = faker.internet().emailAddress();
    // String safeEmail = faker.internet().safeEmailAddress();
}

[EXPLANATION]

Java generates random emails using Random for number generation and StringBuilder for string construction. System.currentTimeMillis() provides timestamp-based uniqueness. Arrays store word lists for readable emails. Name-based patterns use String.toLowerCase() and substring(). String.matches() validates email format with regex. For production use, add JavaFaker dependency (com.github.javafaker:javafaker) which provides faker.internet().emailAddress() and safeEmailAddress() methods with proper formatting.

Expected Output

Random Email: k8j2n5p7x9w3@example.com
Readable Email: sunnypanda742@example.com
Name-based: john.doe@company.com
Test Email: test_1703001234_8392@test.local
Multiple Emails: [user17030012345670@example.com, user17030012345671@example.com, user17030012345672@example.com]
Valid: Yes

Common Use Cases

  • Generate test data for Spring Boot applications
  • Create mock users for JUnit/TestNG test suites
  • Populate H2/PostgreSQL databases with seed data
  • Generate emails for REST API integration tests
  • Create test accounts for Selenium automation

Important Notes

  • Add JavaFaker: com.github.javafaker:javafaker:1.0.2
  • Use SecureRandom for cryptographic applications
  • System.currentTimeMillis() provides millisecond precision
  • Consider Apache Commons Validator for robust email validation
  • Use test domains (.test, .local, example.com) in test environments

Try Our Interactive Generator

Don't want to write code? Use our free web-based Email generator with instant results.

TRY EMAIL GENERATOR →