Local skill by Claw0x — runs entirely in your OpenClaw agent.
Validate email addresses for format correctness and assess risk level. Pure local logic processing with no external API calls.
> Runs locally. No external API calls, no API key required. Complete privacy.
None. Just install and use.
| When This Happens | Do This | What You Get |
|-------------------|---------|--------------|
| User provides email | Validate format | Valid/invalid + risk score |
| Check disposable email | Run validation | Disposable domain detection |
| Bulk email validation | Loop through list | Format check for each |
| Pre-filter signups | Validate before save | Risk score assessment |
openclaw skills install email-validator
const result = await agent.run('email-validator', {
email: 'user@example.com'
});
console.log(result.valid); // true/false
console.log(result.risk_score); // 10-100
{
"valid": true,
"email": "user@example.com",
"checks": {
"format_valid": true,
"domain": "example.com",
"local_part": "user",
"is_disposable": false
},
"risk_score": 10,
"suggestion": null
}
100% local processing. Zero external API calls. Complete privacy.
This skill runs entirely in your agent's environment using pure TypeScript logic. All validation happens locally using:
Uses a regex pattern to check email structure locally:
@): 1-64 characters, alphanumeric, dots, hyphens, underscores, plus signs
@): Valid hostname with TLD
No network calls. Pure string matching.
Compares the extracted domain against built-in lists (stored in code):
No DNS lookups. Pure array lookups.
Calculates risk score using simple arithmetic:
| Factor | Risk Impact |
|--------|-------------|
| Invalid format | +90 (instant high risk) |
| Disposable domain | +70 |
| All-number local part | +30 |
| Very short local part (<3 chars) | +20 |
| Free email provider | +10 |
| Valid corporate domain | +10 (baseline) |
No external scoring API. Pure math.
Lower score = safer email.
This is by design. The skill is optimized for speed, determinism, and zero external dependencies.
Problem: Filter out fake emails during registration
Solution: Validate format and check disposable domains
Example:
const result = await agent.run('email-validator', {
email: 'test@mailinator.com'
});
if (result.risk_score > 70) {
console.log('Disposable email detected');
}
Problem: Clean email list before campaign
Solution: Validate all emails and remove invalid ones
Example:
const emails = ['user1@example.com', 'invalid@', 'user2@gmail.com'];
const results = await Promise.all(
emails.map(email => agent.run('email-validator', { email }))
);
const validEmails = results
.filter(r => r.valid && r.risk_score < 50)
.map(r => r.email);
Problem: Prioritize corporate emails over free providers
Solution: Use risk score to rank leads
Example:
const result = await agent.run('email-validator', {
email: 'ceo@company.com'
});
// Corporate domain = low risk score (10-20)
// Free provider = medium risk (20-30)
// Disposable = high risk (80-100)
import { Claw0xClient } from '@claw0x/sdk';
const claw0x = new Claw0xClient(process.env.CLAW0X_API_KEY);
agent.onUserInput(async (input) => {
if (input.includes('@')) {
const result = await claw0x.call('email-validator', {
email: input
});
if (!result.valid) {
return 'Invalid email format';
}
if (result.checks.is_disposable) {
return 'Disposable email not allowed';
}
}
});
from claw0x import Claw0xClient
client = Claw0xClient(api_key=os.environ['CLAW0X_API_KEY'])
def validate_email(email: str) -> dict:
result = client.call('email-validator', {'email': email})
return result
# Use in chain
email = "user@example.com"
validation = validate_email(email)
if validation['valid']:
print(f"Email is valid with risk score: {validation['risk_score']}")
const response = await fetch('https://api.claw0x.com/v1/call', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CLAW0X_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
skill: 'email-validator',
input: { email: 'test@example.com' }
})
});
const result = await response.json();
console.log(result);
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| email | string | yes | Email address to validate (3-254 chars) |
{
valid: boolean; // Whether email format is valid
email: string; // Normalized (lowercased) email
checks: {
format_valid: boolean; // RFC format check result
domain: string; // Extracted domain
local_part: string; // Extracted local part (before @)
is_disposable: boolean; // Whether domain is disposable
};
risk_score: number; // Risk score (10 = low, 90 = high)
suggestion: string | null; // Suggestion if invalid
}
| Error | Cause | Solution |
|-------|-------|----------|
| Missing required field: email | No email provided | Provide email in input |
| email must be between 3 and 254 characters | Email too short/long | Check email length |
This skill is provided by Claw0x, the native skills layer for AI agents.
Cloud version available: For users who need centralized analytics, a cloud version is available at claw0x.com/skills/validate-email.
Explore more skills: claw0x.com/skills
共 1 个版本