indico icon indicating copy to clipboard operation
indico copied to clipboard

SMTP_SENDER_FALLBACK being ignored SMTP_ALLOWED_SENDERS

Open fborgherodbsagency opened this issue 1 year ago • 5 comments

Despite setting both values the system is always sending as mail FROM whatever is the user/reviewer is sending the notification.

Also system messages are sent via the main admin email and not from the SMTP_SENDER_FALLBACK

fborgherodbsagency avatar Feb 17 '25 23:02 fborgherodbsagency

Did you restart indico-celery.service after making the config change?

ThiefMaster avatar Feb 17 '25 23:02 ThiefMaster

yes i am using a dockerized instance on elestio so each time i was restarting everything. I tried litteraly everything, even to disable celery and let the smtp send directly, no way seems still using the from and ignoring the settings.

this is my indico.conf

# Database
import os
SQLALCHEMY_DATABASE_URI = f'postgresql://{os.environ["PGUSER"]}:{os.environ["PGPASSWORD"]}@{os.environ["PGHOST"]}:38791/{os.environ["PGDATABASE"]}'
del os

# Change this to something long and random
SECRET_KEY = '--redacted--'
# BASE_URL = 'http://localhost:8080'
BASE_URL = 'https:/--redacted--'
USE_PROXY = True

DEFAULT_TIMEZONE = 'Europe/Rome'
DEFAULT_LOCALE   = 'it_IT'

REDIS_CACHE_URL = 'redis://172.17.0.1:9736/0'
CELERY_BROKER   = 'redis://172.17.0.1:9736/1'

# Change these emails to something sensible
SMTP_USE_CELERY = False
SMTP_SERVER = ('smtp.redacted.com', 587)
SMTP_LOGIN = '[email protected]'
SMTP_PASSWORD = 'redacted'
SMTP_USE_TLS = False
NO_REPLY_EMAIL = '[email protected]'
SMTP_SENDER_FALLBACK = '[email protected]'
SUPPORT_EMAIL = '[email protected]'
SMTP_ALLOWED_SENDERS = {'*@redacted.com'}

ENABLE_ROOMBOOKING = False

LOG_DIR           = '/opt/indico/log'
TEMP_DIR          = '/opt/indico/tmp'
CACHE_DIR         = '/opt/indico/cache'
CUSTOMIZATION_DIR = '/opt/indico/custom'

STORAGE_BACKENDS   = {'default': 'fs:/opt/indico/archive'}
ATTACHMENT_STORAGE = 'default'

CUSTOMIZATION_DEBUG = False

XELATEX_PATH = '/usr/bin/xelatex'

LOGO_URL = 'https://redacted.com/i.png'

# Specify the plugins you need here
PLUGINS = {'previewer_code'}

this is my docker-compose

services:
  # The main Indico container which runs flask
  # The same image is also used to run celery
  indico-web: &indico-web
    image: elestio/indico:${SOFTWARE_VERSION_TAG}
    restart: always
    command: "/opt/indico/run_indico.sh"
    depends_on:
      - indico-redis
      - indico-celery
    environment:
      - PGHOST=${PGHOST}
      - PGUSER=${PGUSER}
      - PGPORT=${PGPORT}
      - PGPASSWORD=${PGPASSWORD}
      - PGDATABASE=${PGDATABASE}
      - SERVICE_HOSTNAME=${SERVICE_HOSTNAME}
      - SMTP_SERVER_HOST=${SMTP_SERVER_HOST}
      - SMTP_SERVER_PORT=${SMTP_SERVER_PORT}
      - SMTP_LOGIN=${SMTP_LOGIN}
      - SMTP_PASSWORD=${SMTP_PASSWORD}
      - SMTP_USE_TLS=${SMTP_USE_TLS}
      - SMTP_SENDER_FALLBACK=${SMTP_SENDER_FALLBACK}
      - SUPPORT_EMAIL=${SUPPORT_EMAIL}
      - SMTP_ALLOWED_SENDERS=${SMTP_ALLOWED_SENDERS}
      - NO_REPLY_EMAIL=${NO_REPLY_EMAIL}
    networks:
      - backend
      - frontend
      # ports:
      #   # Indico is accessible either via nginx (localhost:8080 by default), or
      #   # directly via localhost:9090. In that case, static assets are served by flask
      # - 172.17.0.1:3634:59999
    volumes:
      - "archive:/opt/indico/archive" # file storage
      - "customization:/opt/indico/custom"
      - "static-files:/opt/indico/static"
      - "./indico-logs:/opt/indico/log" # logs
      - ./indico.conf:/opt/indico/etc/indico.conf
      - ./logging.yaml:/opt/indico/etc/logging.yaml
    tmpfs:
      - /opt/indico/tmp:mode=0777
      - /var/cache/fontconfig:mode=0777
  # Indico celery
  indico-celery: &indico-celery
    restart: always
    <<: *indico-web
    command: /opt/indico/run_celery.sh
    depends_on:
      - indico-redis
    networks:
      - backend
    ports: []
  # Indico celery beat
  indico-celery-beat:
    restart: always
    <<: *indico-celery
    command: /opt/indico/run_celery.sh beat
  # Redis
  indico-redis:
    restart: always
    image: elestio/redis:7.2
    networks:
      - backend
    volumes:
      - "./redis:/data"
    ports:
      - 172.17.0.1:9736:6379
  # Postgres
  indico-postgres:
    image: elestio/postgres:15
    restart: always
    environment:
      - POSTGRES_USER=${PGUSER}
      - POSTGRES_PASSWORD=${PGPASSWORD}
      - POSTGRES_DB=${PGDATABASE}
    networks:
      - backend
    volumes:
      - "./postgres-data:/var/lib/postgresql/data"
    ports:
      - 172.17.0.1:38791:5432
  # Nginx proxy
  # Indico can be accessed by default via localhost:8080
  indico-nginx:
    image: ghcr.io/nginxinc/nginx-unprivileged:stable-alpine
    restart: always
    networks:
      - frontend
    ports:
      - "172.17.0.1:3634:8080"
    volumes:
      - "static-files:/opt/indico/static:ro"
      - "./nginx.conf:/etc/nginx/conf.d/default.conf:ro"

  pgadmin:
    image: elestio/pgadmin:latest
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: ${ADMIN_EMAIL}
      PGADMIN_DEFAULT_PASSWORD: ${ADMIN_PASSWORD}
      PGADMIN_LISTEN_PORT: 8080
    ports:
      - "172.17.0.1:27977:8080"
    volumes:
      - ./servers.json:/pgadmin4/servers.json

networks:
  backend: {}
  frontend: {}

volumes:
  fontconfig-cache:
    driver: local
    driver_opts:
      type: none
      device: ${PWD}/fontconfig-cache
      o: bind
  archive:
    driver: local
    driver_opts:
      type: none
      device: ${PWD}/archive
      o: bind
  static-files:
    driver: local
    driver_opts:
      type: none
      device: ${PWD}/static-files
      o: bind
  customization:
    driver: local
    driver_opts:
      type: none
      device: ${PWD}/customization
      o: bind

fborgherodbsagency avatar Feb 18 '25 04:02 fborgherodbsagency

i really dom't know how to debug any further

fborgherodbsagency avatar Feb 18 '25 04:02 fborgherodbsagency

Can you please provide concrete examples? ie the actual message headers (From and Reply-to) from emails you consider incorrect? You can redact your domain if needed.

ThiefMaster avatar Feb 18 '25 10:02 ThiefMaster

What version is this elestio container based on, it is not the offical indico container. The new SMTP_FALLBACK_SENDER handling was introduced in indico 3.3.5 according to the change log. ( released 2.12.2024)

bpedersen2 avatar Mar 28 '25 07:03 bpedersen2