<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.dxcluster.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EA2CW</id>
	<title>DXSpider Documentation Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dxcluster.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EA2CW"/>
	<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/wiki/Special:Contributions/EA2CW"/>
	<updated>2026-04-20T21:29:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=419</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=419"/>
		<updated>2025-04-14T10:08:54Z</updated>

		<summary type="html">&lt;p&gt;EA2CW: /* 📦 Required Perl Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039; (default).&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort, while keeping a record of all registration requests and their acceptance or denial.&lt;br /&gt;
It is not allowed to send more than 10 messages per day per IP.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 📥 Commands Usage ==&lt;br /&gt;
&lt;br /&gt;
The system uses three main commands for managing user registrations:&lt;br /&gt;
&lt;br /&gt;
=== msg_sysop ===&lt;br /&gt;
Used by the user to send a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;user_call&amp;gt; REGISTER &amp;lt;user_email&amp;gt; &amp;lt;comments&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop EA1ZZZ REGISTER ea1zzz@example.net I would like to join the cluster&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== auth_register ===&lt;br /&gt;
Used by the sysop to approve and register the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== deny_register ===&lt;br /&gt;
Used by the sysop to reject a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 How It Works: Full Example ==&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION REQUEST (msg_sysop) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User input from Telnet:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop XX0ABC REGISTER xx0abc@domain.com Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Response to user&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To sysop via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Message sent to sysop.&lt;br /&gt;
   Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
  Email: xx0abc@domain.com&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Msg received from XX0ABC (REGISTER) to EA3CV-2&lt;br /&gt;
&lt;br /&gt;
New message via msg_sysop command:&lt;br /&gt;
&lt;br /&gt;
Node: EA3CV-2&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Msg del sysop de / Msg from sysop of EA3CV-2&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
📡 Message from DXSpider command:&lt;br /&gt;
Date: 13 April 2025 16:35:02&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
Sent by: EA3CV&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,00000000-000000,PENDING ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION APPROVAL (auth_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration completed for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
Pass:  u$2wGVX=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Aceptada su solicitud de registro / Registration accepted XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-164558,ACCEPTED,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION DENIAL (deny_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration denied for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Denegada su solicitud de registro / Registration denied XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha denegado su solicitud de registro.&lt;br /&gt;
&lt;br /&gt;
Si cree que esto es un error, puede contactar con el administrador.&lt;br /&gt;
Gracias.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been denied.&lt;br /&gt;
&lt;br /&gt;
If you believe this is a mistake, please contact the administrator.&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❌ DENIED registration of XX0ABC from 127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-165008,DENIED  ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;      # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/DXvars.pm&amp;lt;/code&amp;gt; — Email and Telegram variables&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
cpan List:Util&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA2CW</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=412</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=412"/>
		<updated>2025-04-11T20:03:31Z</updated>

		<summary type="html">&lt;p&gt;EA2CW: /* 📑 Files Used */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;User&#039;&#039;&#039; sends a message:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Sysop receives:&#039;&#039;&#039;&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Sysop approves:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   auth_register EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &#039;&#039;&#039;User receives confirmation email&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
   User: EA0ABC-2&lt;br /&gt;
   Password: 5B54gqGz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &#039;&#039;&#039;Or sysop denies:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   deny_reg EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &#039;&#039;&#039;User receives denial notice&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Access request denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;       # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
* &amp;lt;code&amp;gt; /spider/local/DXvars.pm&amp;lt;/code&amp;gt; — email and Telegram variables&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
cpan JSON&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change these to fit your tone and language.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Received ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Confirmation Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Denial Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos.&lt;br /&gt;
Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria.&lt;br /&gt;
You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Telegram Notifications ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request (and anothers)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA2CW</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=411</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=411"/>
		<updated>2025-04-11T20:02:58Z</updated>

		<summary type="html">&lt;p&gt;EA2CW: /* 📑 Files Used */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;User&#039;&#039;&#039; sends a message:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Sysop receives:&#039;&#039;&#039;&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Sysop approves:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   auth_register EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &#039;&#039;&#039;User receives confirmation email&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
   User: EA0ABC-2&lt;br /&gt;
   Password: 5B54gqGz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &#039;&#039;&#039;Or sysop denies:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   deny_reg EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &#039;&#039;&#039;User receives denial notice&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Access request denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;       # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
* /spider/local/DXvars.pm - email and Telegram variables&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
cpan JSON&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change these to fit your tone and language.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Received ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Confirmation Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Denial Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos.&lt;br /&gt;
Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria.&lt;br /&gt;
You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Telegram Notifications ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request (and anothers)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA2CW</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=389</id>
		<title>Sending messages to the sysop via Telegram</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=389"/>
		<updated>2025-04-10T00:58:53Z</updated>

		<summary type="html">&lt;p&gt;EA2CW: changed set/msg_sysop by msg_sysop&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 📡 Sending messages to the sysop via Telegram =&lt;br /&gt;
&lt;br /&gt;
== 📋 Description ==&lt;br /&gt;
The `msg_sysop` command allows users connected to a DXSpider node to send a direct message to the sysop via Telegram.&lt;br /&gt;
&lt;br /&gt;
It is useful for:&lt;br /&gt;
&lt;br /&gt;
* Requesting registration on the node&lt;br /&gt;
* Reporting issues or failures&lt;br /&gt;
* Making general enquiries&lt;br /&gt;
&lt;br /&gt;
The message includes the following data:&lt;br /&gt;
&lt;br /&gt;
* User callsign&lt;br /&gt;
* Subject (e.g. REGISTER, PROBLEM, INFO)&lt;br /&gt;
* Email address&lt;br /&gt;
* Message text&lt;br /&gt;
* Access IP&lt;br /&gt;
&lt;br /&gt;
== ▶️ Command usage ==&lt;br /&gt;
From the DXSpider shell:&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;CALL&amp;gt; &amp;lt;SUBJECT&amp;gt; &amp;lt;EMAIL&amp;gt; &amp;lt;MESSAGE&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop XX0ABC REGISTER xx0abc@example.com Requesting registration&lt;br /&gt;
msg_sysop XX0ABC PROBLEM xx0abc@example.com My password is not working&lt;br /&gt;
msg_sysop XX0ABC-1 INFO xx0abc@example.com Greetings from DM42&lt;br /&gt;
&amp;lt;/pre&amp;gt;The user will receive a confirmation, and the sysop will receive the complete message via Telegram.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Required configuration ==&lt;br /&gt;
To use the `msg_sysop` command, minimal setup is needed for the Telegram bot.&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/Local.pm ===&lt;br /&gt;
Add the following to the end of the file, just before the final `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
sub telegram&lt;br /&gt;
{&lt;br /&gt;
    my $payload = shift;&lt;br /&gt;
&lt;br /&gt;
    my $url = &amp;quot;https://api.telegram.org/bot$main::token/sendMessage&amp;quot;;&lt;br /&gt;
    `curl -s -X POST $url -d chat_id=$main::id -d text=&amp;quot;$payload\n&amp;quot; -d parse_mode=&amp;quot;Markdown&amp;quot;`;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;If `/spider/local/Local.pm` does not exist, you can copy it from the base installation:&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /spider/perl/Local.pm /spider/local/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/DXVars.pm ===&lt;br /&gt;
Add your bot credentials at the end of the file, just before `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
# Telegram Bot&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;89734237899:KF90V20M90MCQJA9Q0&#039;91C,CCC&#039;0944&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Restart the node to apply the changes:&amp;lt;pre&amp;gt;&lt;br /&gt;
shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 💬 Notify unregistered users ==&lt;br /&gt;
To let users know that they need to register and can use the `msg_sysop` command, you can override the default DXSpider error message.&lt;br /&gt;
&lt;br /&gt;
Edit `/spider/startup` and add the following lines:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/var $DXM::msgs{en}{e28} = &#039;Sorry, you need to be registered (Use the msg_sysop command to request registration.)&#039;&lt;br /&gt;
set/var $DXM::msgs{es}{e28} = &#039;Lo sentimos, necesitas estar registrado (Usa el comando msg_sysop para solicitar registrarte)&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 Display a message in the MOTD ==&lt;br /&gt;
To remind users upon login, edit the file `/spider/local_data/motd_nor`:&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
|     If you wish to have full access, please use the command &#039;msg_sysop&#039;     |&lt;br /&gt;
|                to request registration on this node.                        |&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📦 Script download ==&lt;br /&gt;
You can download the `msg_sysop.pl` script from the official repository:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl View on GitHub - EA3CV/dxspider_info]&lt;br /&gt;
&lt;br /&gt;
Save it as:&amp;lt;pre&amp;gt;&lt;br /&gt;
/spider/local_cmd/msg_sysop.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;It may be helpful to look at [https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository]&lt;br /&gt;
&lt;br /&gt;
== 🔐 How to get your Telegram ID and Token ==&lt;br /&gt;
To receive messages, you need to configure a Telegram bot:&lt;br /&gt;
&lt;br /&gt;
# Open Telegram and search for &amp;lt;code&amp;gt;@BotFather&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start a new bot with: &amp;lt;code&amp;gt;/newbot&amp;lt;/code&amp;gt; and follow the instructions&lt;br /&gt;
# BotFather will return a token like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1234567890:AAEjg0EjEMPLO_T0KEN4PRUEBA1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Send any message to your bot via Telegram&lt;br /&gt;
# Then open this URL in your browser (replace with your actual token):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://api.telegram.org/bot&amp;lt;your_token&amp;gt;/getUpdates&lt;br /&gt;
&amp;lt;/pre&amp;gt;You will see something like:&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;chat&amp;quot;:{&amp;quot;id&amp;quot;:123456789,&amp;quot;first_name&amp;quot;:&amp;quot;YourName&amp;quot;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;That number is your **chat ID**.  Use this ID and your token in `/spider/local/DXVars.pm`.&lt;br /&gt;
&lt;br /&gt;
=== ⚠️ Important ===&lt;br /&gt;
This script **only works with Telegram bots**.  It is not possible to send messages directly to personal accounts via the Telegram API.&lt;br /&gt;
&lt;br /&gt;
== 🧠 Additional notes ==&lt;br /&gt;
&lt;br /&gt;
* This command is designed as a lightweight and direct alternative to email.&lt;br /&gt;
* The sysop receives all relevant data, including the user’s IP and callsign.&lt;br /&gt;
* You may combine this with logging or other scripts for additional traceability.&lt;br /&gt;
&lt;br /&gt;
== 🧑‍💻 Author ==&lt;br /&gt;
&lt;br /&gt;
* Kin EA3CV* — [mailto:ea3cv@cronux.net](mailto:ea3cv@cronux.net)&lt;/div&gt;</summary>
		<author><name>EA2CW</name></author>
	</entry>
</feed>