📮 A fully featured open source mail delivery platform for incoming & outgoing e-mail
125 matches across 5 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .rubocop.yml | 21 | # There should always be empty lines inside a class. For example |
| LOW | .rubocop.yml | 101 | Lint/BooleanSymbol: |
| LOW | app/models/user_invite.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/organization_user.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/track_domain.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/credential.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/smtp_endpoint.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/ip_address.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/ip_pool_rule.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/address_endpoint.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/http_endpoint.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/webhook_event.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/worker_role.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/organization.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/route.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/queued_message.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/webhook.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/ip_pool.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/webhook_request.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/domain.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/domain.rb | 21 | # dkim_error :string(255) |
| LOW | app/models/organization_ip_pool.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/scheduled_task.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/server.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/server.rb | 21 | # send_limit :integer |
| LOW | app/models/user.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/additional_route_endpoint.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/concerns/has_locking.rb | 1 | # frozen_string_literal: true |
| LOW | app/senders/smtp_sender.rb | 161 | # Return an array of server hostnames which should receive this message |
| LOW | app/lib/worker/process.rb | 1 | # frozen_string_literal: true |
| LOW | app/controllers/legacy_api/messages_controller.rb | 1 | # frozen_string_literal: true |
| LOW | app/controllers/legacy_api/base_controller.rb | 1 | # frozen_string_literal: true |
| LOW | app/controllers/legacy_api/send_controller.rb | 21 | # |
| LOW | app/assets/config/manifest.js | 1 | //= link_tree ../images |
| LOW | config/locales/en.yml | 1 | # Files in the config/locales directory are used for internationalization |
| LOW | config/environments/production.rb | 21 | config.public_file_server.enabled = true |
| LOW | config/environments/development.rb | 41 | |
| LOW | config/initializers/application_controller_renderer.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/backtrace_silencers.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/mime_types.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/wrap_parameters.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/assets.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/permissions_policy.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/content_security_policy.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/content_security_policy.rb | 21 | # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } |
| LOW | config/initializers/inflections.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 1 | # frozen_string_literal: true |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 21 | # Changing this default means invalidate all encrypted messages generated by |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 41 | # and asynchronous queries will then be enabled. |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 61 | # regardless of whether they have a default or not. |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 81 | # |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 101 | # and you have no plans to rollback. |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 121 | # |
| LOW | config/initializers/new_framework_defaults_7_0.rb | 141 | # See https://guides.rubyonrails.org/configuring.html#config-active-support-disable-to-s-conversion for more information |
| LOW | spec/models/server_spec.rb | 1 | # frozen_string_literal: true |
| LOW | spec/models/server_spec.rb | 21 | # send_limit :integer |
| LOW | spec/models/queued_message_spec.rb | 1 | # frozen_string_literal: true |
| LOW | spec/models/organization_spec.rb | 1 | # frozen_string_literal: true |
| LOW | spec/models/domain_spec.rb | 1 | # frozen_string_literal: true |
| LOW | spec/models/domain_spec.rb | 21 | # spf_error :string(255) |
| 24 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | app/senders/smtp_sender.rb | 212 | # Create a new result object |
| MEDIUM | app/lib/smtp_server/server.rb | 102 | # Create a hash to contain a buffer for each client. |
| MEDIUM | config/initializers/wrap_parameters.rb | 5 | # This file contains settings for ActionController::ParamsWrapper which |
| MEDIUM | config/initializers/permissions_policy.rb | 2 | # Define an application-wide HTTP permissions policy. For further |
| MEDIUM | config/initializers/content_security_policy.rb | 4 | # Define an application-wide content security policy. |
| MEDIUM | lib/postal/signer.rb | 7 | # Create a new Signer |
| MEDIUM | lib/postal/message_db/provisioner.rb | 55 | # Create a new table |
| MEDIUM | lib/postal/message_db/message.rb | 351 | # Create a new item in the message queue for this message |
| MEDIUM | lib/postal/message_db/message.rb | 487 | # Create a new link |
| MEDIUM | lib/postal/message_db/database.rb | 62 | # Create a new message with the given attributes. This won't be saved to the database |
| MEDIUM | db/schema.rb | 1 | # This file is auto-generated from the current state of the database. Instead |
| MEDIUM | db/schema.rb | 5 | # This file is the source Rails uses to define your schema when running `bin/rails |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/util/has_prometheus_metrics.rb | 5 | def register_prometheus_counter(name, **kwargs) |
| LOW | app/util/has_prometheus_metrics.rb | 10 | def register_prometheus_histogram(name, **kwargs) |
| LOW | app/util/has_prometheus_metrics.rb | 15 | def increment_prometheus_counter(name, labels: {}) |
| LOW | app/util/has_prometheus_metrics.rb | 22 | def observe_prometheus_histogram(name, time, labels: {}) |
| LOW | app/mailers/app_mailer.rb | 18 | def server_send_limit_approaching(server) |
| LOW | app/mailers/app_mailer.rb | 23 | def server_send_limit_exceeded(server) |
| LOW | app/models/server.rb | 223 | def authenticated_domain_for_address(address) |
| LOW | app/models/server.rb | 251 | def find_authenticated_domain_from_headers(headers) |
| LOW | app/models/concerns/has_authentication.rb | 29 | def authenticate_with_previous_password_first(unencrypted_password) |
| LOW | app/senders/smtp_sender.rb | 87 | def send_message_to_smtp_client(raw_message, mail_from, rcpt_to, retry_on_connection_error: true) |
| LOW | app/senders/smtp_sender.rb | 139 | def determine_mail_from_for_message(message) |
| LOW | app/senders/smtp_sender.rb | 155 | def determine_rcpt_to_for_message(message) |
| LOW | app/controllers/application_controller.rb | 50 | def redirect_to_with_return_to(url, *args) |
| LOW | app/helpers/application_helper.rb | 28 | def domain_options_for_select(server, selected_domain = nil, options = {}) |
| LOW | app/helpers/application_helper.rb | 53 | def endpoint_options_for_select(server, selected_value = nil, options = {}) |
| LOW | spec/helpers/general_helpers.rb | 5 | def create_plain_text_message(server, text, to = "test@example.com", override_attributes = {}) |
| LOW | lib/tracking_middleware.rb | 61 | def dispatch_redirect_request(request, server_token, link_token) |
| LOW | lib/tracking_middleware.rb | 101 | def get_message_db_from_server_token(token) |
| LOW | lib/postal/config_schema.rb | 596 | def substitute_config_file_root(string) |
| LOW | lib/postal/config.rb | 144 | def change_database_connection_pool_size(new_size) |
| LOW | lib/postal/message_db/provisioner.rb | 114 | def remove_raw_tables_older_than(max_age = 30) |
| LOW | lib/postal/message_db/provisioner.rb | 147 | def remove_raw_tables_until_less_than_size(size) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/lib/smtp_server/server.rb | 171 | # Increment prometheus |
| LOW | config/environments/production.rb | 58 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. |
| LOW | lib/postal/message_db/message.rb | 529 | # Return the result |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | spec/models/domain_spec.rb | 210 | "admin@example.com", |
| LOW | spec/models/user_spec.rb | 95 | expect(user.name).to eq "John Doe" |
| LOW | spec/factories/organization_factory.rb | 28 | name { "Acme Inc" } |
| LOW | spec/lib/smtp_server/client/data_spec.rb | 64 | expect(client.headers["from"]).to eq ["test@test.com"] |