canvas-lms
canvas-lms copied to clipboard
Emails are not sent/delivered using Amazon SES
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
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>'
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.