# How to run and use mail server locally ## status-go Just some notes: ``` make statusgo ./build/bin/statusd -shh -datadir=paid-data-mailserver -shh.mailserver -shh.passwordfile=wnode-data-mailserver/password.txt -listenaddr=127.0.0.1:30303 -log=DEBUG -ipc ``` Verify peers are connected separately: ``` geth attach ~/git/status-go/paid-data-mailserver/geth.ipc admin.peers ``` ## Clojure side Add local mail server to `constants.cljs` where address is RLPx in print out above, e.g: ``` "paid" {:id "paid" :name "Status testnet mailserver paid, experimental" :address "enode://9f0a55f116aedb40d4036d9a385d505d9c183fd708ef1aa2f883895df97864f758eee911c26c86732ae13a57664a076de2527189f983ee24dda2a4cb5f5db777@127.0.0.1:30303"} ``` Connect to it, might need to switch networks and login/logout etc to trigger requestMessages`. Make sure networks match. Check logs for `offline inbox` to see flow. Can switch offline server in advanced settings. If there are issues with peers, and mail server has peers, then going into CLJS repl and: ``` (require 'status-im.transport.inbox) (status-im.transport.inbox/add-peer "enode://987c40d5761678f030d80de13a2f8a0150da651e5d2c430b96e4f8c2c544389918c7bd820d2d6a5610afb96dcedf8ebb0b941859a0cdbd7dddbbd13994dcbe52@[::]:30303" println println) (status-im.transport.inbox/fetch-peers println println) ``` can help with debugging. ## Notes Note that this above flow only modifies the 'server' side of mail server and UI side of client. If you want to modify status-go node on client side you need to make sure status-go is built and linked properly in the app. See https://github.com/status-im/status-react/blob/develop/scripts/bundle-status-go.sh