I have an account with the Tor-based e-mail provider Mail2Tor. Their hidden service has been down lately; therefore I cannot access my e-mail account either to send or receive e-mail. I have been attempting to write a Perl script designed to connect to the mail server (hidden service) so I can send mail. There are two main problems with my configuration: one, I cannot connect it to the mail hidden service, and two, the instructions I read for creation of a mail client was actually for a locally hosted one, not a remote one.

The original code: 

use LWP::UserAgent;
use LWP::Protocol::Socks;

my $url= ""; #your url here
my $ua = new LWP::UserAgent(agent => 'perl');
$ua -> proxy([qw(http https)] => 'socks://');

print "To:\n";
$from='';#your email here
print "Subject:\n";
print "Body:\n";

open(MAIL, "|/usr/sbin/sendmail -t");

print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL $message;

print "Email Sent!";

If anyone can help me solve these two problems, I would be quite grateful.

  • Set up a transparent proxy for the VPS and use the WebMail client link Mail2tor
    – TangLiChun
    Jul 26, 2020 at 3:53

2 Answers 2


You need to connect to remote hidden service mail server with SMTP protocol, your example is sending mail via local sendmail. Sending mail using local sendmail is possible only if local sendmail is configured to connect to TOR.


I'm not coding in perl and do not know the behavior of perl, but mainly the executer first tries to resolve the onion address and then add the proxy to the socket.

In java, you should create an unresolved socket which will try to resolve it through SOCKs proxy. You check my answer and code in java, in here.

And if you want your own hidden mail server, maybe my blog post can help you. Configuring a Hidden Email Server

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .