إرسال رسائل البريد الإلكتروني باستخدام بيانات اعتماد SMTP باستخدام Amazon SES يعمل… ولكن ليس من Discourse

لقد قمت بتكوين Amazon SES.
لقد خرجت من وضع الحماية (sandbox)، مما يعني أنه يمكنني إرسال رسائل بريد إلكتروني إلى عناوين غير مُحققة.
من وثائق Amazon SES:

عند خروج حسابك من وضع الحماية، يمكنك إرسال بريد إلكتروني إلى أي مستلم، بغض النظر عما إذا كان عنوان المستلم أو نطاقه مُحققا. ومع ذلك، لا تزال بحاجة إلى التحقق من جميع الهويات التي تستخدمها كعناوين “من” (From) أو “مصدر” (Source) أو “مرسل” (Sender) أو “مسار العودة” (Return-Path).

لقد قمت أيضًا بتكوين بيانات اعتماد SMTP الخاصة بي.

إرسال بريد إلكتروني تجريبي إلى مستلم غير مُحقق يعمل من لوحة تحكم Amazon S3 أو أي أداة اختبار SMTP أخرى.

ومع ذلك، فإنه لا يعمل من Discourse.

app.yml:

  DISCOURSE_SMTP_ADDRESS: email-smtp.eu-west-3.amazonaws.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: AKIA****************
  DISCOURSE_SMTP_PASSWORD: "*************************************"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (اختياري، الافتراضي true)
  DISCOURSE_SMTP_DOMAIN: forum.monocycle.info # (العنوان لإرسال الإشعارات منه)
  DISCOURSE_NOTIFICATION_EMAIL: noreply@forum.monocycle.info # (العنوان لإرسال الإشعارات منه)

إعدادات الرد عبر البريد الإلكتروني:

عندما أرسل بريدًا إلكترونيًا تجريبيًا من Discourse، يتم تخطي البريد مع رسالة الخطأ هذه:

554 تم رفض الرسالة: عنوان البريد الإلكتروني غير مُحقق. فشلت الهويات التالية في التحقق في المنطقة EU-WEST-3: monocycle.info+verp-3a76559e11c2b9a318165af8eb968f22@gmail.com

وبالطبع قمت بإعادة بناء تطبيقي بعد تغيير app.yml.

أي فكرة لماذا يحدث هذا الخطأ، وكيفية حله؟

تشير رسالة الخطأ هذه إلى أنك بحاجة إلى إنشاء هوية لـ monocycle.info@gmail.com والتحقق منها. لاحظ أنك لست بحاجة إلى التحقق من التسمية (+verp-...) حيث سيتم قبول جميع التسميات عند التحقق من صحة العنوان بدون تسمية.

السبب في ذلك هو أن عنوان الرد عبر البريد الإلكتروني يُستخدم كعنوان Return-Path، وهو أحد الأنواع التي يسلط اقتباسك الضوء عليها كحاجة إلى التحقق.

لست متأكدًا من سبب عمل الإرسال بالطرق الأخرى ولكن أعتقد أن اختبارات لوحة تحكم Amazon وأداة اختبار SMTP الخاصة بك ربما نجحت لأنها كانت ترسل إلى عنوان الرد عبر البريد الإلكتروني الخاص بك، بدلاً من استخدامه كعنوان Reply-To/Return-Path كما يفعل Discourse.

التوثيق الخاص بالهويات موجود هنا:

إعجاب واحد (1)

أجل، كما هو موضح هنا:

والذي لم أفهمه في البداية. دعنا نحاول إضافة عنوان بريدي الإلكتروني في Gmail كعنوان تم التحقق منه في SES.

إعجاب واحد (1)

على حد علمي، لا يمكنك استخدام عناوين ± على SES. لكنني أستخدم SES يوميًا عبر Discourse.

إعجابَين (2)

لقد تحققت من monocycle.info@gmail.com ويمكن لـ Discourse إرسال رسائل البريد الإلكتروني للمستخدمين. تعمل ميزة الرد عبر البريد الإلكتروني أيضًا.
سأرى خلال الأيام القادمة إذا واجهت أي مشاكل.

هل يمكنك التوضيح أكثر؟ فيما يتعلق بما كتبته للتو (تبدو الأمور تعمل). :slight_smile:

إعجاب واحد (1)

هناك شيئان مختلفان:

  • لا يمكن لـ SES استخدام عناوين + - مع حركة المرور الواردة أو الصادرة (لا أتذكر المصطلح الصحيح لشكل +)
  • أرسل رسائل بريد إلكتروني طوال الوقت من Discourse عبر SES

عندما حاولت استخدام الإنشاء/الرد عبر البريد الإلكتروني، احتجت إلى استخدام Gmail بسبب ذلك.

هل هذا مهم بالنسبة لك… ليس لدي أدنى فكرة :man_facepalming:

إعجاب واحد (1)

حسنًا ، شكرًا للتوضيح. أنا لا أستخدم عناوين ± لـ SES ، لذلك لا أعتقد أن هذا ذي صلة في حالتي. :slight_smile:

تسميهم أمازون “labels” (تسميات)، على افتراض أنك تشير إلى عناوين user+label@domain، لا أتذكر ما إذا كان هذا هو المصطلح الخاص بالبريد الإلكتروني أم مجرد مصطلح أمازون. هل أنت متأكد من أن هذه غير مدعومة؟ يتم استخدامها بشكل شائع من قبل المستخدمين.
الشيء الوحيد الذي يمكنني العثور عليه في الوثائق هو أن امتداد SMTPUTF8 غير مدعوم، مما يحد الجزء المحلي (قبل @) إلى أحرف ASCII ذات 7 بت. وهذا يشمل حرف +.

لا، أنت لا تفعل، ولكن +verp… يعمل على هذا النحو. أم أنني مخطئ تمامًا؟

حسنًا، قد تكون ردودي غير دقيقة بعض الشيء نظرًا لأنني لا أفهم الكثير من الأشياء المتعلقة بالبريد الإلكتروني.


إعداد الرد عبر البريد الإلكتروني الخاص بي هو بالفعل عنوان Gmail يستخدم علامة “+” وأشياء من هذا القبيل.

إذا كان إعداد الرد عبر البريد الإلكتروني معطلاً، فإن إرسال البريد الإلكتروني لـ Discourse يعمل (إذا كنت أتذكر جيدًا).

إذا كان إعداد الرد عبر البريد الإلكتروني ممكّنًا، وإذا لم أتحقق من عنوان Gmail في SES، فلن يرسل Discourse أي رسائل بريد إلكتروني، سواء كان لديهم عنوان رد Gmail أم لا (على سبيل المثال، البريد الإلكتروني التجريبي، أو البريد الإلكتروني الملخص لا يحتوي على عنوان رد Gmail)، وسيطرح خطأ 554 Message rejected: Email address is not verified.

إذا قمت بالتحقق من عنوان Gmail على SES، فإن جميع رسائل البريد الإلكتروني التي يرسلها Discourse تبدو أنها تعمل، سواء كان لديهم عنوان رد Gmail أم لا.

بالطبع، أود معرفة المزيد عن كيفية عمل كل هذه الأشياء، ولكن طالما أنها تعمل… هذا هو اهتمامي الأساسي. :ابتسامة:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.