Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6605525
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T19:17:38+00:00 2026-05-25T19:17:38+00:00

I wrote multithreading application which connects to some email accounts from database per thread.

  • 0

I wrote multithreading application which connects to some email accounts from database per thread.
I know that JavaMail have no any options to use SOCKS5 for connection so I decided to use it via System.setProperty method. But this method sets SOCKS5 for whole application and I need to use one SOCKS5 per thread. I mean:

  • first thread: uses SOCKS 192.168.0.1:12345 for bob@localhost to
    connect
  • second thread: uses SOCKS 192.168.0.20:12312 for
    alice@localhost to connect
  • third thread: uses SOCKS 192.168.12.:8080
    for andrew@localdomain to connect

and so on. Can you tell me how to do this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T19:17:39+00:00Added an answer on May 25, 2026 at 7:17 pm

    You need to create your own socket using the Proxy you want:

    SocketAddress addr = new InetSocketAddress("socks.mydomain.com", 1080);
    Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
    Socket socket = new Socket(proxy);
    InetSocketAddress dest = new InetSocketAddress("smtp.foo.com", 25);
    socket.connect(dest);
    

    Then use it for the connection:

    SMTPTransport transport = (SMTPTransport) session.getTransport("smtp");
    transport.connect(socket);
    

    Edit: The tricky bit is if you need authentication with the SMTP server to send mail. If that’s the case, you have to create a subclass of javax.mail.Authenticator and pass it to the Session.getInstance() method:

    MyAuthenticator authenticator = new MyAuthenticator();
    
    Properties properties = new Properties();
    properties.setProperty("mail.smtp.submitter",
                            authenticator.getPasswordAuthentication().getUserName());
    properties.setProperty("mail.smtp.auth", "true");
    
    Session session = Session.getInstance(properties, authenticator);
    

    Where the authenticator looks like:

    private class MyAuthenticator extends javax.mail.Authenticator 
    {
        private PasswordAuthentication authentication;
    
        public Authenticator() 
        {
             String username = "auth-user";
             String password = "auth-password";
             authentication = new PasswordAuthentication(username, password);
        }
    
        protected PasswordAuthentication getPasswordAuthentication() 
        {
            return authentication;
        }
    }
    

    This is all untested, but I believe it’s everything you have to do. It should at least put you on the right path.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I wrote a windows service using VB that read some legacy data from Visual
I was seeing some strange behavior in a multi threading application which I wrote
I wrote myself a little downloading application so that I could easily grab a
I wrote an application that currently runs against a local instance of MySql. I
I'm writing an application that displays a list of objects which the user can
Some background, this application is a printing application that runs within REvit Structure, an
I wrote a multithreading application for parsing logfiles. It's based on the mutex buffer
I wrote a program which solves some kind of optimization problem. I have been
I wrote a component that displays a filename, a thumbnail and has a button
I wrote a simple tool to generate a DBUnit XML dataset using queries that

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.