Note: your question is already answered here: link
RabbitMQ only supports publishing to exchanges. This is a core function of the product. Then, RabbitMQ uses bindings to figure out what queue(s) should receive the message.
You can read about these concepts here.
When you use "Publish message" in the administration console, it uses the default binding and default exchange. From this document:
The default exchange
In previous parts of the tutorial we knew nothing about exchanges, but still were able to send messages to queues. That was possible because we were using a default exchange, which we identify by the empty string ("").
Recall how we published a message before:
channel.basic_publish(exchange='',
routing_key='hello',
body=message)
The exchange parameter is the name of the exchange. The empty string denotes the default or nameless exchange: messages are routed to the queue with the name specified by routing_key, if it exists.
So, in order to appear to publish directly to a queue, the management interface publishes a message to the default exchange (named amq.default or the empty string "") using the queue name as the routing key. You can see this for yourself by enabling the developer tools in your browser and watching the HTTP call made to /api/exchanges/vhost/name/publish when you publish a message to a queue.
In your case, the request will look something like this (use Chrome, and right-click the publish request and "copy as cUrl"):
curl -4vvv -u guest:guest \
'localhost:15672/api/exchanges/%2F/amq.default/publish' \
-H 'Content-Type: text/plain;charset=UTF-8' \
--data-binary '{"vhost":"/","name":"amq.default","properties":{"delivery_mode":1,"headers":{}},"routing_key":"MY-QUEUE-NAME","delivery_mode":"1","payload":"TEST","headers":{},"props":{},"payload_encoding":"string"}'
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.