غير قادر على التكامل مع SendGrid

مرحباً،

أحاول استخدام خدمة البريد الإلكتروني من Sendgrid، وأواجه دائماً هذا الخطأ في السجلات:

استثناء المهمة: 535 فشل المصادقة: اسم مستخدم أو كلمة مرور غير صحيحة

لست متأكداً مما أقوم به خطأ، إليك شكل تكويني:

 DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
 DISCOURSE_SMTP_PORT: 587
 DISCOURSE_SMTP_USER_NAME: apiKey
 DISCOURSE_SMTP_PASSWORD: 'SG.xxxx.xxxxxx.xxxx'

كما جربت استخدام المنفذ 2525 بناءً على اقتراح من Fresh install. Works. Sendgrid not sending emails - #5 by Ham ، لكن ذلك لم ينجح أيضاً.

أستطيع إنشاء اتصال باستخدام telnet.

هل يمكن لأحد مساعدتي؟ هل لديك أي فكرة عما قد أكون أقوم به خطأ؟

من نفس الخادم الذي يستضيف Discourse؟

آسف إذا كان هذا سؤالًا تافهًا، لكن هل اسم مستخدم SendGrid الخاص بك هو حقًا: apiKey؟

:thinking:

أسأل فقط، لأن اختيار اسم حساب كهذا غير معتاد…

نعم

لا، لا أعتقد أن هناك مفهومًا لاسم المستخدم في SendGrid، لقد اتبعت فقط التوثيق هنا discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

قد أكون مخطئًا أيضًا، لكنني لا أرى أي معلومات حول اسم المستخدم في حسابي على SendGrid.

إنهم يستخدمون مصطلحات مختلفة، لكنك لا تزال تتصل بخادم SMTP قياسي في جوهره، والذي يتطلب مصادقة.

انتقل إلى قسم Teammates - https://app.sendgrid.com/settings/teammates

ستجد هناك تفاصيل الحساب القادرة على إرسال البريد الإلكتروني:

القيمة في عمود “Username” هي ما تحتاج إلى إدخاله في إعداد Discourse DISCOURSE_SMTP_USER_NAME.

لذلك، إذا كان “Username” هو SK2019، فسيكون لديك شيء مثل:

DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: SK2019
DISCOURSE_SMTP_PASSWORD: 'xxxx.xxxxxx.xxxx'

لقد جربت ذلك لكنه لم ينجح. تشير وثائق Sendgrid docs إلى استخدام apiKey كاسم مستخدم، لكن يبدو أن ذلك لا يعمل.

ربما ينبغي عليّ التواصل مع فريق Sendgrid وطلب مساعدتهم.

هل استخدمت apiKey عند استخدام telnet؟

نعم، لقد اتبعت التعليمات الموجودة في How to send an Email with SMTP | SendGrid Docs | Twilio وقد نجحت! لست متأكدًا مما أفتقده في إعدادات Discourse.

هل تبدو السطور الأربعة في ملف الإعدادات لديك مثل السطور الخاصة بي (في الأعلى

مع اسم المستخدم DISCOURSE_SMTP_USER_NAME الصحيح الذي يتطابق مع الاسم المعروض في صفحة زملائك في SendGrid؟

نعم، اسم المستخدم هو الذي يُعرض في صفحة الزملاء، وكلمة المرور هي المفتاح الذي أنشأته (يعمل telnet باستخدام هذا المفتاح)، والحقلان الآخران متطابقان تمامًا.

هل يمكنني معرفة إصدار discourse الذي تستخدمه؟ أنا أستخدم النسخة التجريبية، وأشتبه في أن ذلك قد يكون المشكلة.

على أي حال، أنا أخطط للانتقال إلى Mailgun؛ جربته اليوم، ويعمل بسلاسة (رغم أنه مكلف، لكن لا أملك خيارات أخرى في الوقت الحالي).

للعلم فقط @Satwik_Kansal، اسم مستخدم واجهة برمجة تطبيقات Sendgrid لدينا هو “apikey” وليس “apiKey”. يعمل بشكل ممتاز.

أواجه نفس المشكلة. ما هو الملخص هنا؟ هل نستخدم “apikey” (لا يعمل) أم نضيف زميلًا في الفريق (إنه فارغ)؟

للتوضيح، فإن الوثائق تجعل هذا الأمر محيرًا إلى حد ما، وهذا ليس أول مرة أجد نفسي أبحث في جوجل عن هذه المشكلة بالضبط في محاولة لإيجاد الحل.

تحتوي الوثائق حاليًا على:

SendGrid — 40 ألف بريد إلكتروني في فترة تجريبية مدتها 30 يومًا

عنوان خادم SMTP؟ smtp.sendgrid.net
اسم مستخدم SMTP؟      apikey
كلمة مرور SMTP؟       [مفتاح API الخاص بـ SendGrid]

تعديل: أعتقد أن ما يُربك الناس هو أنهم (مثلما حدث معي) يعتقدون أن “apikey” تعني أنه يجب وضع مفتاح الـ API الخاص بك هنا، لكن في الواقع يجب تركه كما هو!

جنوني، أليس كذلك؟

أتخيل أن هذا أربك 99% من الذين حاولوا تجربته :confused:

(وأنا نفسي في ذلك الوقت)