{"id":21197038,"url":"https://github.com/jalbam/easpm123","last_synced_at":"2025-07-17T09:40:22.707Z","repository":{"id":58244589,"uuid":"65598707","full_name":"jalbam/easpm123","owner":"jalbam","description":"[EASPM123 (Email Anti-Spam 123)] An Easy-to-use JavaScript API that protects any email address you want to use in your website from spambots.","archived":false,"fork":false,"pushed_at":"2020-01-24T07:31:32.000Z","size":54,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-19T22:05:04.538Z","etag":null,"topics":["configurable","cross-browser","cross-device","cross-platform","easy-to-use","email-obfuscator","email-protector","javascript","javascript-api","javascript-library","js","multilang","multilanguage","multiplatform","spam-prevention","spam-protection","spambot-security","vanilla-javascript","vanilla-js","vanillajs"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jalbam.png","metadata":{"files":{"readme":"README.htm","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-13T04:13:17.000Z","updated_at":"2023-09-02T02:53:52.000Z","dependencies_parsed_at":"2022-08-31T04:22:15.181Z","dependency_job_id":null,"html_url":"https://github.com/jalbam/easpm123","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jalbam/easpm123","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalbam%2Feaspm123","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalbam%2Feaspm123/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalbam%2Feaspm123/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalbam%2Feaspm123/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jalbam","download_url":"https://codeload.github.com/jalbam/easpm123/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalbam%2Feaspm123/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264535993,"owners_count":23624404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configurable","cross-browser","cross-device","cross-platform","easy-to-use","email-obfuscator","email-protector","javascript","javascript-api","javascript-library","js","multilang","multilanguage","multiplatform","spam-prevention","spam-protection","spambot-security","vanilla-javascript","vanilla-js","vanillajs"],"created_at":"2024-11-20T19:42:25.526Z","updated_at":"2025-07-10T05:31:23.644Z","avatar_url":"https://github.com/jalbam.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\t\u003chead\u003e\n\t\t\u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"\u003e\n\t\t\u003ctitle\u003eEASPM123 - test page (by Joan Alba Maldonado)\u003c/title\u003e\n\t\t\u003cscript language=\"javascript\" type=\"text/javascript\" src=\"easpm123_min_eval_no_comments.js\"\u003e\u003c/script\u003e\n\t\t\u003cscript language=\"javascript\" type=\"text/javascript\"\u003e\n\t\t\u003c!--\n\t\t\t//Changing options (it will be executed automatically when the document is loaded):\n\t\t\tEASPM123(\n\t\t\t\ttrue, //Auto-load when the document is ready.\n\t\t\t\t[\"easpm123_\"], //Classes used by A tags.\n\t\t\t\t[\"easpm123_label_\"], //Classes used by without-no-spam label tags.\n\t\t\t\t[\"easpm123_\", \"easpm123_no_spam_\"], //IDs used by A tags.\n\t\t\t\t[\"easpm123_label_\", \"easpm123_no_spam_label\"], //IDs used by without-no-spam label tags.\n\t\t\t\t[\"NO_SPAM_WELCOME\", \"DELETE_THIS\"], //Texts to be cleared (case sensitive).\n\t\t\t\t[\"{*AT_HERE*}\", \"{*HERE_AT*}\"], //Texts that will be replaced by AT (@) symbol.\n\t\t\t\t[\"mouseover\", \"click\", \"touchstart\"] //Events that will fire the script (leave it empty to do it automatically without events).\n\t\t\t);\n\t\t\t\n\t\t\t/*\n\t\t\t//Changing options (it will be executed automatically when the document is loaded):\n\t\t\tEASPM123(\n\t\t\t\ttrue,\n\t\t\t\t[\"easpm123_auto\"],\n\t\t\t\t[\"easpm123_auto_label\"],\n\t\t\t\t[], //If it was set to null, it would use default values and we don't want that.\n\t\t\t\t[], //If it was set to null, it would use default values and we don't want that.\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t[]\n\t\t\t);\n\t\t\t*/\n\t\t// --\u003e\n\t\t\u003c/script\u003e\n\t\u003c/head\u003e\n\t\u003cbody\u003e\n\t\t\u003ch1 style=\"display:inline;\"\u003eEASPM123 (E-Mail Anti-Spam 123) 1.0\u003c/h1\u003e\n\t\t\u003ch5 style=\"display:inline;\"\u003e\u0026nbsp; by Joan Alba Maldonado\u003c/h5\u003e\n\t\t\n\t\t\u003ch2\u003eWhat does it do?\u003c/h2\u003e\n\t\tThis script will help you to avoid spam by using JavaScript and will protect you even with JavaScript disabled.\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tProtecting your email address against spam is very important since as soon as your email address is caught by a spam bot and inserted in a list or a database for spamming purposes, it will be sold to many spammers that will annoy you and make you waste working time and lose hours and hours of your life. If just only one spam bot gets your email address, that can totally destroy your business if you are out of luck.\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tBy default, when the script is added to a web site, it will be executed as soon as the document is ready and with the default values (read usage below to configure this behaviour).\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tFor users with JavaScript enabled, they will see your email links normally (unless you use maximum security) and in a totally transparent way. So they will just need to place the mouse cursor or the finger above the email in order to see it and email you.\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tFor users without JavaScript enabled, they will still be able to guess your email address as long as they are not bots. This is done by using a real email but with a text string added that the user will have to strip manually.\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tSome spam bots do support JavaScript. The script is executed some milliseconds after the document is ready to avoid some spam bots that get the emails from the documents as soon as they are ready without waiting at all.\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tEven though there are some spam bots that support JavaScript and will wait some seconds after getting emails from a document, not all of them are capable to fire user events. To provide a good security level, the script uses onMouseOver, onTouchStart and onClick events by default. You can change those events (read usage below) or even decode all emails automatically when the document is ready and without waiting for any user event (for the sake of security, this last option is not recommended).\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tUsing maximum security (see live examples below) to avoid all spam crawlers (with or without JavaScript support) is recommended.\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tThis method will work in any web browser under any platform, with or without JavaScript support. The script will work in any modern JavaScript browser and even in old ones (including Internet Explorer 5.0) as long as they have DOM support (document.getElementById and so on).\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\tThe script is lightweight, just around 2.57 KB (minified but not compressed).\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\t\u003ch2\u003eUsage\u003c/h2\u003e\n\t\tTo use this script, you just need to follow Step 1 and Step 3. Step 2 is optional just in the case you want to use change the default behaviour.\n\t\t\u003col\u003e\n\t\t\t\u003cli\u003e\n\t\t\t\tAdd the script (recommended inside the HEAD tag) with the following code:\n\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\u003ctt\u003e\n\t\t\t\t\t\t\u0026lt;script language=\u0026quot;javascript\u0026quot; type=\u0026quot;text/javascript\u0026quot; src=\u0026quot;easpm123.js\u0026quot;\u0026gt;\u0026lt;/script\u0026gt;\n\t\t\t\t\t\u003c/tt\u003e\n\t\t\t\t\t\u003cbr /\u003e\n\t\t\t\t\t\u003cb\u003eNote\u003c/b\u003e: unless you change the script code, it will be executed automatically with the default values as soon as the document is ready.\n\t\t\t\t\u003c/ul\u003e\n\t\t\t\u003c/li\u003e\n\t\t\t\u003cli\u003e\n\t\t\t\t[Optional] After adding the script (step 1), you can change the default behaviour executing the script configured with your desired values by adding the following code (recommended inside the HEAD):\n\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\u003ctt\u003e\n\t\t\t\t\t\t\u0026lt;script language=\u0026quot;javascript\u0026quot; type=\u0026quot;text/javascript\u0026quot;\u0026gt;\u003cbr /\u003e\n\t\t\t\t\t\t\u0026lt;!--\u003cbr /\u003e\n\t\t\t\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\t\tEASPM123(\u003cbr /\u003e\n\t\t\t\t\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\t\t\tboolean, //Auto-load when the document is ready.\u003cbr /\u003e\n\t\t\t\t\t\t\t\t//Note: Next values can be set to null for default or use [] if you don't want any:\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array, //Classes used by A tags.\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array, //Classes used by without-no-spam label tags.\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array, //IDs used by A tags.\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array, //IDs used by without-no-spam label tags.\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array, //Texts to be cleared (case sensitive).\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array, //Texts that will be replaced by AT (@) symbol.\u003cbr /\u003e\n\t\t\t\t\t\t\t\tstrings_array //Events that will fire the script (leave it empty to do it automatically without events).\u003cbr /\u003e\n\t\t\t\t\t\t\t\t\u003c/ul\u003e\n\t\t\t\t\t\t\t);\u003cbr /\u003e\n\t\t\t\t\t\t\t\u003c/ul\u003e\n\t\t\t\t\t\t//--\u0026gt;\u003cbr /\u003e\n\t\t\t\t\t\t\u0026lt;/script\u0026gt;\n\t\t\t\t\t\u003c/tt\u003e\n\t\t\t\t\u003c/ul\u003e\n\t\t\t\tExample:\n\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\u003ctt\u003e\n\t\t\t\t\t\t\u0026lt;script language=\u0026quot;javascript\u0026quot; type=\u0026quot;text/javascript\u0026quot;\u0026gt;\u003cbr /\u003e\n\t\t\t\t\t\t\u0026lt;!--\u003cbr /\u003e\n\t\t\t\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\t\tEASPM123(\u003cbr /\u003e\n\t\t\t\t\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\t\t\ttrue, //Default is true.\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;no_spam_class1\u0026quot;, \u0026quot;no_spam_class2\u0026quot;], //Default is [\u0026quot;easpm123\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;no_spam_label_class1\u0026quot;, \u0026quot;no_spam_label_class2\u0026quot;], //Default is [\u0026quot;easpm123_label\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;no_spam_id1\u0026quot;, \u0026quot;no_spam_id2\u0026quot;], //Default is [\u0026quot;easpm123\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;no_spam_label_id1\u0026quot;, \u0026quot;no_spam_label_id2\u0026quot;], //Default is [\u0026quot;easpm123_label\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;NO_SPAM_WELCOME\u0026quot;, \u0026quot;DELETE_THIS\u0026quot;], //Default is [\u0026quot;NO_SPAM_WELCOME\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;{*AT_HERE*}\u0026quot;, \u0026quot;{*HERE_AT*}\u0026quot;], //Default is [\u0026quot;{*AT_HERE*}\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t[\u0026quot;click\u0026quot;] //Default is [\u0026quot;mouseover\u0026quot;, \u0026quot;click\u0026quot;, \u0026quot;touchstart\u0026quot;].\u003cbr /\u003e\n\t\t\t\t\t\t\t\t\u003c/ul\u003e\n\t\t\t\t\t\t\t);\u003cbr /\u003e\n\t\t\t\t\t\t\t\u003c/ul\u003e\n\t\t\t\t\t\t//--\u0026gt;\u003cbr /\u003e\n\t\t\t\t\t\t\u0026lt;/script\u0026gt;\n\t\t\t\t\t\u003c/tt\u003e\n\t\t\t\t\u003c/ul\u003e\n\t\t\t\u003c/li\u003e\n\t\t\t\u003cli\u003e\n\t\t\t\tWherever you need to use a link to an email address, use the desired class or the desired ID for the A link. Using a label element (can be SPAN, DIV or whatever) is recommended for browsers without JavaScript enabled:\n\t\t\t\t\u003cul\u003e\n\t\t\t\t\t\u003ctt\u003e\n\t\t\t\t\t\tAQUI LINK Y LABEL\n\t\t\t\t\t\u003c/tt\u003e\n\t\t\t\t\t\u003cbr /\u003e\n\t\t\t\t\t\u003cb\u003eNote\u003c/b\u003e: You can improve security by using other methods as changing text direction by CSS (not recommended for browsers which doesn't support this CSS feature), use an image for parts of your email, etc.\n\t\t\t\t\u003c/ul\u003e\n\t\t\t\u003c/li\u003e\n\t\t\u003c/ol\u003e\n\t\t\u003ch2\u003eLive examples\u003c/h2\u003e\n\t\tHere are some ways you can use to prevent spam:\n\t\t\u003cbr /\u003e\n\t\t\n\t\t\u003c!-- \u003ca class=\"easpm123_auto\" href=\"mailto:email@NO_SPAM_WELCOMEexample.com\"\u003eemail@\u003cdel style=\"text-decoration:line-through;\"\u003e\u003cs\u003eNO_SPAM_WELCOME\u003c/s\u003e\u003c/del\u003eexample.com\u003c/a\u003e\n\t\t\u003cspan class=\"easpm123_auto_label\"\u003e(without NO_SPAM_WELCOME)\u003c/span\u003e\n\t\t(this email is showed automatically without waiting any event (not recommended))\n\t\t\u003cbr /\u003e --\u003e\n\t\t\t\n\t\t\u003ca id=\"easpm123_\" href=\"mailto:email@NO_SPAM_WELCOMEexample.com\"\u003eemail@\u003cdel style=\"text-decoration:line-through;\"\u003e\u003cs\u003eNO_SPAM_WELCOME\u003c/s\u003e\u003c/del\u003eexample.com\u003c/a\u003e\n\t\t\u003cspan id=\"easpm123_label_\"\u003e(without NO_SPAM_WELCOME)\u003c/span\u003e\n\t\t(PUT THE MOUSE CURSOR OVER THE EMAIL OR CLICK/TAP IT!)\n\t\t\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\t\u003ch2\u003eLicense\u003c/h2\u003e\n\t\tForbidden to use without keeping the author's name and copyright clauses. For non-commercial purposes only (unless you contact me and pay for a license).\n\t\t\u003cbr /\u003e\n\t\t\u003cbr /\u003e\n\t\t\u003ch2\u003eContact me\u003c/h2\u003e\n\t\t\u003ca id=\"easpm123_\" href=\"mailto:joanalbamaldonado@NO_SPAM_WELCOMEgmail.com\"\u003eemail@\u003cdel style=\"text-decoration:line-through;\"\u003e\u003cs\u003eNO_SPAM_WELCOME\u003c/s\u003e\u003c/del\u003eexample.com\u003c/a\u003e\n\t\t\u003cspan id=\"easpm123_label_\"\u003e(without NO_SPAM_WELCOME)\u003c/span\u003e\n\t\u003c/body\u003e\n\u003c/html\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjalbam%2Feaspm123","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjalbam%2Feaspm123","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjalbam%2Feaspm123/lists"}