How to Prepare Data for ColdEmailingJet

Before you start a cold email campaign, it’s crucial to prepare and import your data into ColdEmailingJet’s local database. This ensures efficient data management and streamlines the sending process. Below is a step-by-step guide on how to prepare the required data, including sender accounts, contact lists, mail content, proxies, attachments, and links.

Update 20241210: First create an Account Group from Account menu, then create a new campaign, select the account group created, then prepare the data.

Update 20250302: For CSV import, make sure the file is in UTF-8 encoding, and the first column is ’email’. Sorry for the mistake before.

Update 20260409 Update content based on new implementation


1. Importing Sender Accounts

ColdEmailingJet supports sender account data in .txt, .csv, .json, .oa2, and .graph formats.

CSV Format

A CSV file for sender accounts must include:

  • email (required): The sender’s email address
  • pwd (required): The sender’s password/app password

Optional CSV Fields:

  • username: Display name for the sender
  • smtp_host: SMTP server hostname
  • smtp_port: SMTP server port
  • auth_type: 0=password, 1=OAuth (mail client), 2=OAuth (Graph API)
  • ClientId: Required for auth_type 1 or 2
  • RefreshToken: Required for OAuth authentication
  • Any custom fields (no spaces or special characters)

TXT Format

Each line format: email:password or email:password:smtp-host:smtp-port

JSON Format (Mailbot)

{
    "Email": "user@example.com",
    "RefreshToken": "token_value",
    "ClientId": "client_id_value"
}

OA2 Format (OAuth)

Format: email:ClientId:RefreshToken

GRAPH Format (Microsoft Graph)

JSON file with email, refresh_token, and client_id fields.


2. Importing Contact Lists

Contact lists can be stored as .txt or .csv files.

CSV Format

Must contain an email field. Additional custom fields allowed (no spaces/special characters).

TXT Format

Each line contains one email address.


3. Preparing Mail Content

Mail content stored in .txt, .htm, or .html files.

  • Text Files (.txt): First line = email subject, remaining lines = body
  • HTML Files (.htm/.html): <title> tag content = subject

Content Rotation

Templates rotate automatically after every 20,000 sent emails when multiple templates exist in your mail content folder.

Spintax Support

Use {option1|option2|option3} for random word selection:

Hello {world|everyone|friends}, welcome to {Python|programming|coding}!

4. Email Tags Reference

Tags use format {category.key} and are replaced with actual values when sending.

Email Tags ({email.*}) – Recipient Data

TagDescriptionExample Output
{email.email}Full email addressjohn@example.com
{email.email32}Base32 encodedNBXWYIDPN5XHIZQ=
{email.email64}Base64 encodedam9obkBleGFtcGxlLmNvbQ==
{email.firstpart}Local part before @john
{email.username}From custom field or parsedjohn_doe
{email.Phone}Custom field from CSV555-1234

Sender Tags ({sender.*}) – Your Account Data

TagDescriptionExample Output
{sender.email}Sender’s email addresssales@mycompany.com
{sender.username}Display nameJohn Smith
{sender.firstpart}Local part of sender emailsales
{sender.subdomain}Returns HTTPS URL with matching domain from sub_domains.txthttps://sub.example.com/?email=recipient@test.com
{sender.custom_field}Any custom field from sender CSVvalue

FileSpin Tags ({filespin.*})

Load random lines from external text files. Create filename.txt in the mail spin file folder:mail.data\file.spin

Y can find out full path of mail.data from settings–>app data path

{filespin.subject}
{filespin.greeting}
{filespin.signature}

Each file should contain one option per line. A random line is selected for each email.

Attachment Tags ({attachment.*})

TagDescription
{attachment.base64image}Embeds random image from attachment folder as base64
{attachment.disable}Disables attachment handling

Utility Tags ({util.*})

TagDescriptionExample Output
{util.guid}Random GUID-like stringXKCM-PQRT-ABFD
{util.time}Randomly formatted current timeJanuary 1 at 21:30:15

Random Tag ({rand})

Generates a random 5-10 character alphanumeric string.


5. Inserting Links

Method 1: Direct Link in Content

Simply write the full URL in your email content.

Method 2: Using {link} Tag

Place {link} in your email body. The system randomly selects a link from your link file (.txt with one link per line) and replaces the tag.

Example content:

Check out our service: {link}

Method 3: Using {sender.subdomain}

Creates a tracking URL with recipient email parameter:

https://subdomain.yourdomain.com/?email=recipient@example.com

Requires sub_domains.txt file in the mail spin folder with entries like:

sub1.yourdomain.com
sub2.yourdomain.com
https://sub3.yourdomain.com

6. Configuring Proxies with Sticky ID

Proxy File Format (.txt)

One proxy per line. Supported formats:

http://username:password@ip:port
socks5://ip:port
socks4://username:password@domain.com:3023
ip:port  (HTTP assumed)

Sticky ID Feature

Use {stickyid} tag to maintain consistent proxy identity across multiple requests. The system generates a random 6-8 character string that remains constant for the entire session.

Example proxy line with sticky ID:

http://user_{stickyid}:pass_{stickyid}@proxy.example.com:8080

This becomes:

http://user_AbCdEf:pass_AbCdEf@proxy.example.com:8080

Use cases:

  • Maintaining session consistency
  • Proxy authentication requiring consistent usernames
  • Tracking requests from same session

Proxy Types Supported

  • HTTP/HTTPS proxies
  • SOCKS4 proxies
  • SOCKS5 proxies

7. Attaching Files

Place attachment files (images, PDFs) in a folder. ColdEmailingJet randomly selects a file from this folder for each email.

Embedding Images

Use {attachment.base64image} in HTML content to embed a random image as base64 data URI:

<img src="{attachment.base64image}" alt="Product Image">

8. Account Groups & Campaigns

Account Groups

Group sender accounts by purpose or domain. When importing senders, assign them to an account group ID.

Campaigns

Campaigns are linked to account groups. Create a campaign first, then select the account group.

Ghosted Account Handling

Accounts marked as ghosted are automatically skipped for 7 days (configurable). After the cooldown period, they become available again automatically.


9. File Format Best Practices

CSV Requirements

  • UTF-8 encoding
  • First column must be email
  • No spaces or special characters in custom field names
  • Field names: only letters, numbers, and underscores

Example Contact CSV

email,FirstName,LastName,Company
john@example.com,John,Smith,ABC Corp
jane@example.com,Jane,Doe,XYZ Inc

Example Sender CSV

email,pwd,username,smtp_host,smtp_port
sales@myco.com,password123,Sales Team,smtp.gmail.com,587

Using Custom Fields in Email

<p>Dear {email.FirstName} {email.LastName},</p>
<p>Thanks for your interest from {email.Company}!</p>

10. Tracking & Performance

Session Tracking

  • sent_per_session: Tracks sends in current session
  • maxSendPerAccount: Maximum sends per account per session
  • reuse_time: Time between reusing same sender (in hours, minimum 6 minutes)

Sender Status

  • obsolete=0: Active
  • obsolete=1: Marked for deletion (removed after 48 hours)
  • ghosted_from: Timestamp when account was ghosted

Reset Session Count

Use reset_session_count(accs_group_id) to reset sent_per_session for all accounts in a group.


Quick Start Checklist

✅ Launch campaign

✅ Create account group

✅ Import sender accounts (CSV/TXT/JSON)

✅ Create campaign and link to account group

✅ Prepare contact list (CSV with email column)

✅ Create mail content (HTML/TXT with spintax)

✅ Configure proxies (optional, with sticky ID if needed)

✅ Set up link file (optional, one link per line)

✅ Add attachments folder (optional)