首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Redash:无法发送邀请/passowrd重置邮件

Redash:无法发送邀请/passowrd重置邮件
EN

Stack Overflow用户
提问于 2020-11-12 14:48:05
回答 1查看 902关注 0票数 1

在将email env变量设置为每个https://redash.io/help/open-source/setup之后(用于AWS )

代码语言:javascript
运行
复制
sudo docker-compose run --rm server manage send_test_mail

工作,我也会收到这封邮件。

但是邀请电子邮件不会被发送。

在尝试这个命令时-直接发送邀请,

代码语言:javascript
运行
复制
sudo docker-compose run --rm server manage users invite x@x.com X admin@x.com

我得到以下错误:

引发RuntimeError(“应用程序无法创建URL”)

RuntimeError:应用程序无法为独立于请求的URL生成创建URL适配器。您可以通过设置SERVER_NAME配置变量.来修复此问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-18 03:39:15

来自https://github.com/getredash/redash/issues/5266#issuecomment-847756246。感谢@kijimaD。

我也处于同样的情况。我找到了一种发送邀请邮件的方法。

运行停靠-组合后,在发送浏览器邀请电子邮件时检查日志(↓节选)。

代码语言:javascript
运行
复制
$ docker-compose up
...
nginx_1             | 172.31.42.153 - - [24/May/2021:10:59:25 +0000] "POST /api/users/124/reset_password HTTP/1.1" 200 122 "https://example.com/users/124" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" "110.66.19.160"
scheduler_1         | [2021-05-24 10:59:25,960][PID:16][ERROR][ForkPoolWorker-3] task_name=redash.tasks.send_mail task_id=39f69b3c-a109-43d5-bd31-c7dd99955427 Failed sending message: Reset your password
scheduler_1         | Traceback (most recent call last):
scheduler_1         |   File "/app/redash/tasks/general.py", line 58, in send_mail
scheduler_1         |     mail.send(message)
scheduler_1         |   File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 491, in send
scheduler_1         |     with self.connect() as connection:
scheduler_1         |   File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 144, in __enter__
scheduler_1         |     self.host = self.configure_host()
scheduler_1         |   File "/usr/local/lib/python2.7/site-packages/flask_mail.py", line 158, in configure_host
scheduler_1         |     host = smtplib.SMTP(self.mail.server, self.mail.port)
scheduler_1         |   File "/usr/local/lib/python2.7/smtplib.py", line 256, in __init__
scheduler_1         |     (code, msg) = self.connect(host, port)
scheduler_1         |   File "/usr/local/lib/python2.7/smtplib.py", line 317, in connect
scheduler_1         |     self.sock = self._get_socket(host, port, self.timeout)
scheduler_1         |   File "/usr/local/lib/python2.7/smtplib.py", line 292, in _get_socket
scheduler_1         |     return socket.create_connection((host, port), timeout)
scheduler_1         |   File "/usr/local/lib/python2.7/socket.py", line 575, in create_connection
scheduler_1         |     raise err
scheduler_1         | error: [Errno 99] Cannot assign requested address
scheduler_1         | [2021-05-24 10:59:25,961][PID:16][INFO][ForkPoolWorker-3] Task redash.tasks.send_mail[39f69b3c-a109-43d5-bd31-c7dd99955427] succeeded in 0.00195795716718s: None
server_1            | [2021-05-24 10:59:28,257][PID:12][INFO][metrics] method=GET path=/health_check endpoint=redash_index status=302 content_type=text/html; charset=utf-8 content_length=311 duration=1.80 query_count=0 query_duration=0.00

显然,错误内容不同于测试命令。这看起来像是scheduler_1实例无法读取端口主机的错误。

换句话说,实例不读取环境变量。基于此错误,我向docker-compose.yml中的工人添加了一个环境变量。

在运行-d后,我成功地在browser.+1中发送了邀请邮件,但是测试命令docker服务器管理用户邀请user@example.com测试用户admin@example.com不会更改错误消息。

我有一个关于测试命令在特定情况下的可靠性的问题。显然,测试命令的行为与实际浏览器的行为不同。这似乎让很多人困惑..。

我对面临同样问题的人的建议是操作浏览器并查看日志中的实际错误,而不是使用test命令检查它。

我希望这能帮助那些在同样的情况下挣扎的人。

下面是我的坞-撰写和env配置。

码头工

代码语言:javascript
运行
复制
$ cat docker-compose.yml
version: "2"
x-redash-service: &redash-service
  image: redash/redash:8.0.0.b32245
  depends_on:
    - postgres
    - redis
  env_file: /opt/redash/env
  restart: always
services:
  server:
    <<: *redash-service
    command: server
    ports:
      - "5000:5000"
    environment:
      REDASH_WEB_WORKERS: 4
    env_file: /opt/redash/env
  scheduler:
    <<: *redash-service
    command: scheduler
    environment:
      QUEUES: "celery"
      WORKERS_COUNT: 1
      REDASH_WEB_WORKERS: 4
    env_file: /opt/redash/env # <------------- Add
  scheduled_worker:
    <<: *redash-service
    command: worker
    environment:
      QUEUES: "scheduled_queries,schemas"
      WORKERS_COUNT: 1
      REDASH_WEB_WORKERS: 4
    env_file: /opt/redash/env # <------------- Add
  adhoc_worker:
    <<: *redash-service
    command: worker
    environment:
      QUEUES: "queries"
      WORKERS_COUNT: 2
      REDASH_WEB_WORKERS: 4
    env_file: /opt/redash/env # <------------- Add
  redis:
    image: redis:5.0-alpine
    restart: always
  postgres:
    image: postgres:9.6-alpine
    env_file: /opt/redash/env
    volumes:
      - /opt/redash/postgres-data:/var/lib/postgresql/data
    restart: always
  nginx:
    image: redash/nginx:latest
    ports:
      - "80:80"
    depends_on:
      - server
    links:
      - server:redash
    restart: always
env
$ cat env
PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_REDIS_URL=redis://redis:6379/0
POSTGRES_PASSWORD=...
REDASH_COOKIE_SECRET=...
REDASH_SECRET_KEY=...
REDASH_DATABASE_URL=...

# Mail
REDASH_MAIL_SERVER=...
REDASH_MAIL_PORT=...
REDASH_MAIL_USE_TLS=...
REDASH_MAIL_USERNAME=...
REDASH_MAIL_PASSWORD=...
REDASH_MAIL_DEFAULT_SENDER=info@example.com
REDASH_HOST=https://example.com
REDASH_SERVER_NAME=https://example.com
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64806142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档