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
SecureRandomfor 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 →Other Programming Languages
View Email generation code examples in PHP
View Email generation code examples in JavaScript
View Email generation code examples in Python
View Email generation code examples in C#
View Email generation code examples in C++
View Email generation code examples in Ruby
View Email generation code examples in Go