anvil-works / anvil-runtime

The runtime engine for hosting Anvil web apps
https://anvil.works/open-source
Other
874 stars 116 forks source link

java.lang.UnsupportedOperationException when sending e-mail #46

Closed janbkrejci closed 2 years ago

janbkrejci commented 2 years ago

Hi, I am running my app with anvil-app-server. When I try to send an e-mail to my app like this:

@anvil.email.handle_message def message_handler(msg): to_address = msg.addressees.to_addresses[0].raw_value msg.reply(text=f"Your email was sent to {to_address} and received successfully.")

I receive a 554 Internal server error e-mail reply and I see this error on console:

Calling function 'email:handle_message' for app 'CSI' (ID server-uB4YgU1H/iznMA==) [ERROR anvil.dispatcher.native-rpc-handlers.util] Internal server error: 0ce41c78b6d1 java.lang.UnsupportedOperationException at anvil.app_server.secrets$get_global_app_secret_value.invokeStatic(secrets.clj:64) at anvil.app_server.secrets$get_global_app_secret_value.invoke(secrets.clj:64) at anvil.dispatcher.native_rpc_handlers.email$sendBANG$fn18699.invoke(email.clj:171) at anvil.dispatcher.native_rpc_handlers.email$sendBANG.invokeStatic(email.clj:171) at anvil.dispatcher.native_rpc_handlers.email$sendBANG.invoke(email.clj:80) at anvil.dispatcher.native_rpc_handlers.email$wrapped_send$fn18798$fn18799.invoke(email.clj:214) at anvil.core.worker_pool$with_expanding_threadpool_when_slowSTAR.invokeStatic(worker_pool.clj:117) at anvil.core.worker_pool$with_expanding_threadpool_when_slowSTAR.invoke(worker_pool.clj:104) at anvil.dispatcher.native_rpc_handlers.email$wrapped_send$fn18798.invoke(email.clj:213) at clojure.lang.AFn.applyToHelper(AFn.java:154) at clojure.lang.AFn.applyTo(AFn.java:144) at clojure.core$apply.invokeStatic(core.clj:659) at clojure.core$apply.invoke(core.clj:652) at anvil.dispatcher.native_rpc_handlers.util$wrap_native_fn$fn6969$fn6972$fn6981.invoke(util.clj:83) at anvil.dispatcher.native_rpc_handlers.util$wrap_native_fn$fn6969$fn6972.invoke(util.clj:82) at clojure.lang.AFn.run(AFn.java:22) at anvil.core.worker_pool$run_one_taskBANG.invokeStatic(worker_pool.clj:48) at anvil.core.worker_pool$run_one_taskBANG.invoke(worker_pool.clj:32) at anvil.core.worker_pool$launch_threadBANG$fn5895.invoke(worker_pool.clj:86) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:748) [ERROR anvil.app-server.run] Error report from server code: anvil.server.InternalError: Internal server error: 0ce41c78b6d1 Traceback: /home/jbk/anvil/venv/lib/python3.8/site-packages/anvil_downlink_worker/anvil/_threaded_server.py:412 /home/jbk/anvil/venv/lib/python3.8/site-packages/anvil_downlink_worker/anvil/server.py:47 /home/jbk/anvil/venv/lib/python3.8/site-packages/anvil_downlink_worker/anvil/email.py:37 /home/jbk/anvil/venv/lib/python3.8/site-packages/anvil_downlink_worker/anvil/email.py:149 /home/jbk/anvil/CSI/server_code/ServerModule1.py:25 /home/jbk/anvil/venv/lib/python3.8/site-packages/anvil_downlink_worker/anvil/email.py:46 Worker terminated for IDs set() (return code None)

What do I do wrong, please? Thanks

meredydd commented 2 years ago

Hi @janbkrejci,

It looks like what happened here is that your app is trying to use the Custom SMTP settings encoded in your app repository to send the email reply, rather than the credentials provided on the command line. This is (a) not the correct behaviour, and (b) an unhelpful message, and both of these will be fixed in the next release.

meredydd commented 2 years ago

This is now fixed in v1.7.0 :)