canvas-lms icon indicating copy to clipboard operation
canvas-lms copied to clipboard

Emails are not sent/delivered using Amazon SES

Open mezuqu opened this issue 2 years ago • 2 comments

Summary:

Our canvaslms cannot send emails using Amazon Ses

Steps to reproduce:

Hello,

I have gone through all of the SMTP configurations.

Our Amazon EC2 server sends email with SMTP information provided by AWS SES without any problem as I have tested it using a php script.

I have also tried to debug the problem in the logs of both canvas and apache2 however no luck. I have seen that there are lots of people having problems with email delivery as most of the issues have not been solved in canvas.

Also it is so strange and I find this by luck, (it was never mentioned anywhere): https://stackoverflow.com/questions/52380448/not-able-to-deliver-the-mail-in-canvas-lms-what-configuration-setting-i-am-miss

and I have enabled this feature.

Do I have to install a smtp sender like “sendemail” and configure it ? Can you point out us to find out the problem I am sure other people will benefit for this.

Here is my outgoing yml (i have also tried lots of other variations): (I have also enabled "enable_starttls_auto" and set authentication to "plain" as well but no luck after i restarted canvas)

production:
address: “[email-smtp.us-east-1.amazonaws.com](http://email-smtp.us-east-1.amazonaws.com/)”
port: “587”
delivery_method: “smtp”
#enable_starttls_auto: false
user_name: “AK…O”
password: “B…a”
authentication: “login” # plain, login, or cram_md5
domain: “online…org”
outgoing_address: “canvas@…org”
default_name: “Instructure Canvas”

Expected behavior:

It sould able to send emails once i reset my password, or I add someone to the course list from the panel.

Actual behavior:

It doesn't deliver any emails

mezuqu avatar Jun 22 '22 13:06 mezuqu

I have enabled it also. no luck.

production:
  address: "email-smtp.us-east-1.amazonaws.com"
  port: "587"
  #tls: false
  #delivery_method: "smtp"
  enable_starttls_auto: true
  user_name: "AK........O"
  password: "B........a"
  authentication: "plain" # plain, login, or cram_md5
  domain: "online.......org"
  outgoing_address: "[email protected]"
  default_name: "Instructure Canvas"

No luck with this configuration, as i am getting this error:

2022-06-23 02:49:24.821491< 530 Must issue a STARTTLS command first /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:975:in check_auth_response' /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:736:in auth_plain' /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:728:in authenticate' /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:565:in do_start' /opt/bitnami/ruby/lib/ruby/2.7.0/net/smtp.rb:518:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:109:in start_smtp_session' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:100:in deliver!' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/message.rb:2159:in do_delivery' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/message.rb:260:in block in deliver' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/base.rb:589:in block in deliver_mail' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.4.2/lib/active_support/notifications.rb:180:in block in instrument' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.4.2/lib/active_support/notifications/instrumenter.rb:24:in instrument' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.4.2/lib/active_support/notifications.rb:180:in instrument' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/base.rb:587:in deliver_mail' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/mail-2.7.1/lib/mail/message.rb:260:in deliver' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/message_delivery.rb:115:in block in deliver_now' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/rescuable.rb:17:in handle_exceptions' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/actionmailer-6.0.4.2/lib/action_mailer/message_delivery.rb:114:in deliver_now' /opt/bitnami/canvaslms/app/models/message.rb:1039:in deliver_via_email' /opt/bitnami/canvaslms/app/models/message.rb:736:in deliver' /opt/bitnami/canvaslms/app/models/message.rb:55:in deliver' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/performable_method.rb:40:in perform' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/backend/base.rb:305:in block in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/sentry-inst_jobs-1.0.0/lib/sentry/inst_jobs/plugin.rb:12:in block (2 levels) in class:Plugin' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/backend/base.rb:302:in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/backend/base.rb:86:in block in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:596:in block in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:98:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:595:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/backend/base.rb:86:in invoke_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:219:in block (2 levels) in perform' /opt/bitnami/ruby/lib/ruby/2.7.0/benchmark.rb:308:in realtime' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:213:in block in perform' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:22:in block (2 levels) in enable_perform_timing' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing.rb:8:in block in report_timing' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst_statsd-2.2.0/lib/inst_statsd/statsd.rb:91:in time' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing.rb:8:in report_timing' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:21:in block in enable_perform_timing' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:13:in block (2 levels) in enable_batching' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst_statsd-2.2.0/lib/inst_statsd/statsd.rb:97:in batch' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-statsd-2.1.2/lib/inst_jobs_statsd/stats/timing/perform.rb:12:in block in enable_batching' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add' /opt/bitnami/canvaslms/config/initializers/delayed_job.rb:153:in block (2 levels) in <top (required)>' /opt/bitnami/canvaslms/lib/temp_cache.rb:30:in enable' /opt/bitnami/canvaslms/config/initializers/delayed_job.rb:152:in block in <top (required)>' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block (2 levels) in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:91:in block in add' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:210:in perform' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:180:in block (2 levels) in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:285:in block in configure_for_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:54:in running_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:281:in configure_for_job' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:179:in block in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:171:in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:26:in block in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:596:in block in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:98:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:595:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:26:in run' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:135:in block in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:73:in block in initialize' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:78:in execute' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/lifecycle.rb:51:in run_callbacks' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/worker.rb:134:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:19:in block in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:596:in block in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:98:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-2.2.2/app/models/switchman/shard.rb:595:in activate' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/switchman-inst-jobs-3.2.7/lib/switchman_inst_jobs/delayed/worker.rb:19:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:103:in block in spawn_worker' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:115:in block in fork_with_reconnects' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:111:in fork' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:111:in fork_with_reconnects' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:102:in spawn_worker' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:268:in respawn_child' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:229:in block in maintain_children' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:228:in each' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:228:in maintain_children' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:175:in block in join' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:174:in loop' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:174:in join' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/pool.rb:50:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/cli.rb:111:in start' /opt/bitnami/canvaslms/vendor/bundle/ruby/2.7.0/gems/inst-jobs-3.0.6/lib/delayed/cli.rb:36:in run' script/delayed_job:11:in <main>'

mezuqu avatar Jun 23 '22 03:06 mezuqu

Hello @mezuqu , I have your exact configuration, like:

production: address: "email-smtp.us-east-1.amazonaws.com" port: "587" enable_starttls_auto: true user_name: "AK........O" password: "B........a" authentication: "plain" domain: "online.......org" outgoing_address: "[email protected]" default_name: "Instructure Canvas"

But the difference is authentication: "login", hope this helps.

Higherings avatar Jul 13 '22 16:07 Higherings