{"id":32,"date":"2024-11-01T04:27:34","date_gmt":"2024-11-01T04:27:34","guid":{"rendered":"https:\/\/smtprelay.monster\/blog\/?p=32"},"modified":"2026-04-25T22:04:20","modified_gmt":"2026-04-25T22:04:20","slug":"how-to-prepare-data-for-coldemailingjet","status":"publish","type":"post","link":"https:\/\/smtprelay.monster\/blog\/how-to-prepare-data-for-coldemailingjet\/","title":{"rendered":"How to Prepare Data for ColdEmailingJet"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Before you start a cold email campaign, it&#8217;s crucial to prepare and import your data into ColdEmailingJet&#8217;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.<\/p>\n\n\n\n<p><strong>Update 20241210:<\/strong> First create an Account Group from Account menu, then create a new campaign, select the account group created, then prepare the data.<\/p>\n\n\n\n<p><strong>Update 20250302:<\/strong> For CSV import, make sure the file is in UTF-8 encoding, and the first column is &#8217;email&#8217;. Sorry for the mistake before.<\/p>\n\n\n\n<p>Update 20260409 Update content based on new implementation<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Importing Sender Accounts<\/h2>\n\n\n\n<p>ColdEmailingJet supports sender account data in <code>.txt<\/code>, <code>.csv<\/code>, <code>.json<\/code>, <code>.oa2<\/code>, and <code>.graph<\/code> formats.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CSV Format<\/h3>\n\n\n\n<p>A CSV file for sender accounts must include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>email<\/strong> (required): The sender&#8217;s email address<\/li>\n\n\n\n<li><strong>pwd<\/strong> (required): The sender&#8217;s password\/app password<\/li>\n<\/ul>\n\n\n\n<p><strong>Optional CSV Fields:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>username<\/code>: Display name for the sender<\/li>\n\n\n\n<li><code>smtp_host<\/code>: SMTP server hostname<\/li>\n\n\n\n<li><code>smtp_port<\/code>: SMTP server port<\/li>\n\n\n\n<li><code>auth_type<\/code>: 0=password, 1=OAuth (mail client), 2=OAuth (Graph API)<\/li>\n\n\n\n<li><code>ClientId<\/code>: Required for auth_type 1 or 2<\/li>\n\n\n\n<li><code>RefreshToken<\/code>: Required for OAuth authentication<\/li>\n\n\n\n<li>Any custom fields (no spaces or special characters)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">TXT Format<\/h3>\n\n\n\n<p>Each line format: <code>email:password<\/code> or <code>email:password:smtp-host:smtp-port<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">JSON Format (Mailbot)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"Email\": \"user@example.com\",\n    \"RefreshToken\": \"token_value\",\n    \"ClientId\": \"client_id_value\"\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">OA2 Format (OAuth)<\/h3>\n\n\n\n<p>Format: <code>email:ClientId:RefreshToken<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GRAPH Format (Microsoft Graph)<\/h3>\n\n\n\n<p>JSON file with <code>email<\/code>, <code>refresh_token<\/code>, and <code>client_id<\/code> fields.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Importing Contact Lists<\/h2>\n\n\n\n<p>Contact lists can be stored as <code>.txt<\/code> or <code>.csv<\/code> files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CSV Format<\/h3>\n\n\n\n<p>Must contain an <code>email<\/code> field. Additional custom fields allowed (no spaces\/special characters).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TXT Format<\/h3>\n\n\n\n<p>Each line contains one email address.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Preparing Mail Content<\/h2>\n\n\n\n<p>Mail content stored in <code>.txt<\/code>, <code>.htm<\/code>, or <code>.html<\/code> files.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Text Files (.txt)<\/strong>: First line = email subject, remaining lines = body<\/li>\n\n\n\n<li><strong>HTML Files (.htm\/.html)<\/strong>: <code>&lt;title&gt;<\/code> tag content = subject<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Content Rotation<\/h3>\n\n\n\n<p>Templates rotate automatically after every <strong>20,000 sent emails<\/strong> when multiple templates exist in your mail content folder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spintax Support<\/h3>\n\n\n\n<p>Use <code>{option1|option2|option3}<\/code> for random word selection:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hello {world|everyone|friends}, welcome to {Python|programming|coding}!<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Email Tags Reference<\/h2>\n\n\n\n<p>Tags use format <code>{category.key}<\/code> and are replaced with actual values when sending.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Email Tags (<code>{email.*}<\/code>) &#8211; Recipient Data<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tag<\/th><th>Description<\/th><th>Example Output<\/th><\/tr><\/thead><tbody><tr><td><code>{email.email}<\/code><\/td><td>Full email address<\/td><td>john@example.com<\/td><\/tr><tr><td><code>{email.email32}<\/code><\/td><td>Base32 encoded<\/td><td>NBXWYIDPN5XHIZQ=<\/td><\/tr><tr><td><code>{email.email64}<\/code><\/td><td>Base64 encoded<\/td><td>am9obkBleGFtcGxlLmNvbQ==<\/td><\/tr><tr><td><code>{email.firstpart}<\/code><\/td><td>Local part before @<\/td><td>john<\/td><\/tr><tr><td><code>{email.username}<\/code><\/td><td>From custom field or parsed<\/td><td>john_doe<\/td><\/tr><tr><td><code>{email.Phone}<\/code><\/td><td>Custom field from CSV<\/td><td>555-1234<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Sender Tags (<code>{sender.*}<\/code>) &#8211; Your Account Data<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tag<\/th><th>Description<\/th><th>Example Output<\/th><\/tr><\/thead><tbody><tr><td><code>{sender.email}<\/code><\/td><td>Sender&#8217;s email address<\/td><td>sales@mycompany.com<\/td><\/tr><tr><td><code>{sender.username}<\/code><\/td><td>Display name<\/td><td>John Smith<\/td><\/tr><tr><td><code>{sender.firstpart}<\/code><\/td><td>Local part of sender email<\/td><td>sales<\/td><\/tr><tr><td><code>{sender.subdomain}<\/code><\/td><td>Returns HTTPS URL with matching domain from sub_domains.txt<\/td><td>https:\/\/sub.example.com\/?email=recipient@test.com<\/td><\/tr><tr><td><code>{sender.custom_field}<\/code><\/td><td>Any custom field from sender CSV<\/td><td>value<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">FileSpin Tags (<code>{filespin.*}<\/code>)<\/h3>\n\n\n\n<p>Load random lines from external text files. Create <code>filename.txt<\/code> in the mail spin file folder:<strong>mail.data\\file.spin<\/strong><\/p>\n\n\n\n<p>Y can find out full path of mail.data from settings&#8211;>app data path<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{filespin.subject}\n{filespin.greeting}\n{filespin.signature}<\/code><\/pre>\n\n\n\n<p>Each file should contain one option per line. A random line is selected for each email.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Attachment Tags (<code>{attachment.*}<\/code>)<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tag<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>{attachment.base64image}<\/code><\/td><td>Embeds random image from attachment folder as base64<\/td><\/tr><tr><td><code>{attachment.disable}<\/code><\/td><td>Disables attachment handling<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Utility Tags (<code>{util.*}<\/code>)<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tag<\/th><th>Description<\/th><th>Example Output<\/th><\/tr><\/thead><tbody><tr><td><code>{util.guid}<\/code><\/td><td>Random GUID-like string<\/td><td>XKCM-PQRT-ABFD<\/td><\/tr><tr><td><code>{util.time}<\/code><\/td><td>Randomly formatted current time<\/td><td>January 1 at 21:30:15<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Random Tag (<code>{rand}<\/code>)<\/h3>\n\n\n\n<p>Generates a random 5-10 character alphanumeric string.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Inserting Links<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Method 1: Direct Link in Content<\/h3>\n\n\n\n<p>Simply write the full URL in your email content.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Method 2: Using {link} Tag<\/h3>\n\n\n\n<p>Place <code>{link}<\/code> in your email body. The system randomly selects a link from your link file (<code>.txt<\/code> with one link per line) and replaces the tag.<\/p>\n\n\n\n<p>Example content:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Check out our service: {link}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Method 3: Using {sender.subdomain}<\/h3>\n\n\n\n<p>Creates a tracking URL with recipient email parameter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;subdomain.yourdomain.com\/?email=recipient@example.com<\/code><\/pre>\n\n\n\n<p>Requires <code>sub_domains.txt<\/code> file in the mail spin folder with entries like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1.yourdomain.com\nsub2.yourdomain.com\nhttps:&#47;&#47;sub3.yourdomain.com<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Configuring Proxies with Sticky ID<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Proxy File Format (<code>.txt<\/code>)<\/h3>\n\n\n\n<p>One proxy per line. Supported formats:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;username:password@ip:port\nsocks5:\/\/ip:port\nsocks4:\/\/username:password@domain.com:3023\nip:port  (HTTP assumed)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Sticky ID Feature<\/h3>\n\n\n\n<p>Use <code>{stickyid}<\/code> 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.<\/p>\n\n\n\n<p>Example proxy line with sticky ID:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;user_{stickyid}:pass_{stickyid}@proxy.example.com:8080<\/code><\/pre>\n\n\n\n<p>This becomes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;user_AbCdEf:pass_AbCdEf@proxy.example.com:8080<\/code><\/pre>\n\n\n\n<p><strong>Use cases:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Maintaining session consistency<\/li>\n\n\n\n<li>Proxy authentication requiring consistent usernames<\/li>\n\n\n\n<li>Tracking requests from same session<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Proxy Types Supported<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HTTP\/HTTPS proxies<\/li>\n\n\n\n<li>SOCKS4 proxies<\/li>\n\n\n\n<li>SOCKS5 proxies<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Attaching Files<\/h2>\n\n\n\n<p>Place attachment files (images, PDFs) in a folder. ColdEmailingJet randomly selects a file from this folder for each email.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Embedding Images<\/h3>\n\n\n\n<p>Use <code>{attachment.base64image}<\/code> in HTML content to embed a random image as base64 data URI:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;img src=\"{attachment.base64image}\" alt=\"Product Image\"&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Account Groups &amp; Campaigns<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Account Groups<\/h3>\n\n\n\n<p>Group sender accounts by purpose or domain. When importing senders, assign them to an account group ID.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Campaigns<\/h3>\n\n\n\n<p>Campaigns are linked to account groups. Create a campaign first, then select the account group.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ghosted Account Handling<\/h3>\n\n\n\n<p>Accounts marked as ghosted are automatically skipped for <strong>7 days<\/strong> (configurable). After the cooldown period, they become available again automatically.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9. File Format Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">CSV Requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UTF-8 encoding<\/li>\n\n\n\n<li>First column must be <code>email<\/code><\/li>\n\n\n\n<li>No spaces or special characters in custom field names<\/li>\n\n\n\n<li>Field names: only letters, numbers, and underscores<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example Contact CSV<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>email,FirstName,LastName,Company\njohn@example.com,John,Smith,ABC Corp\njane@example.com,Jane,Doe,XYZ Inc<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Example Sender CSV<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>email,pwd,username,smtp_host,smtp_port\nsales@myco.com,password123,Sales Team,smtp.gmail.com,587<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Using Custom Fields in Email<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;p&gt;Dear {email.FirstName} {email.LastName},&lt;\/p&gt;\n&lt;p&gt;Thanks for your interest from {email.Company}!&lt;\/p&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Tracking &amp; Performance<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Session Tracking<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sent_per_session<\/code>: Tracks sends in current session<\/li>\n\n\n\n<li><code>maxSendPerAccount<\/code>: Maximum sends per account per session<\/li>\n\n\n\n<li><code>reuse_time<\/code>: Time between reusing same sender (in hours, minimum 6 minutes)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Sender Status<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>obsolete=0<\/code>: Active<\/li>\n\n\n\n<li><code>obsolete=1<\/code>: Marked for deletion (removed after 48 hours)<\/li>\n\n\n\n<li><code>ghosted_from<\/code>: Timestamp when account was ghosted<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reset Session Count<\/h3>\n\n\n\n<p>Use <code>reset_session_count(accs_group_id)<\/code> to reset <code>sent_per_session<\/code> for all accounts in a group.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Quick Start Checklist<\/h2>\n\n\n\n<p>\u2705 Launch campaign<\/p>\n\n\n\n<p>\u2705 Create account group<\/p>\n\n\n\n<p>\u2705 Import sender accounts (CSV\/TXT\/JSON)<\/p>\n\n\n\n<p>\u2705 Create campaign and link to account group<\/p>\n\n\n\n<p>\u2705 Prepare contact list (CSV with email column)<\/p>\n\n\n\n<p>\u2705 Create mail content (HTML\/TXT with spintax)<\/p>\n\n\n\n<p>\u2705 Configure proxies (optional, with sticky ID if needed)<\/p>\n\n\n\n<p>\u2705 Set up link file (optional, one link per line)<\/p>\n\n\n\n<p>\u2705 Add attachments folder (optional)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before you start a cold email campaign, it&#8217;s crucial to prepare and import your data into ColdEmailingJet&#8217;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 &#8230; <a title=\"How to Prepare Data for ColdEmailingJet\" class=\"read-more\" href=\"https:\/\/smtprelay.monster\/blog\/how-to-prepare-data-for-coldemailingjet\/\" aria-label=\"Read more about How to Prepare Data for ColdEmailingJet\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":9,"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":2504,"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/posts\/32\/revisions\/2504"}],"wp:attachment":[{"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smtprelay.monster\/blog\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}