لدي قائمة رسائل بريد إلكتروني في ملف CSV سأمنحهم شارة. توقعت ألا تتم مطابقة مجموعة في منتدانا (أستخدم قائمة بجميع الحاضرين في حدث ما، وليس لديهم جميعًا حساب في المنتدى). بدا أن الأمر يعمل، وتمت مطابقة الكثيرين بشكل جيد - ولكني لاحظت أن شخصًا ما كان يجب أن يحصل عليها لم يحصل عليها.
اختبرته مرة أخرى مع عنوان بريده الإلكتروني فقط في ملف CSV، ولا يزال يظهر على أنه لا يطابق مستخدمًا موجودًا.
هذه التحذيرات لا علاقة لها بمشكلتك. يراها كل من لم يقم بتكوين مفتاح ترخيص MaxMind. نظرًا لأن الناس يضيعون الوقت في التحقيق في هذه التحذيرات، عندما يواجهون مشاكل أخرى، أردت كتمها. ومع ذلك، تم التراجع عن التزامي، لأنه كسر بعض اختبارات CI الأخرى وبيئات التطوير. يجب إعادة القيام به بطريقة أخرى.
لا أرى أي خطأ واضح، ولكني لست مبرمج Ruby أيضًا. لقد اختبرته على نسختنا باستخدام عنوان بريد إلكتروني واحد وعنوانين في ملف CSV بسيط مفصول بفواصل، وقد نجح الأمر. لقد نجح أيضًا، بغض النظر عما إذا كنت أستخدم نهايات ملفات LF أو CRLF، فقط لاستبعاد بعض مشاكل محلل الملفات الشائعة. كيف تقوم بإنشاء ملف CSV، وهل يبدو جيدًا عند فتحه في محرر نصوص بسيط، مثل المفكرة، nano، vi، أيًا كان؟
رائع، شكراً لمساعدتك. هذا ما كنت أفكر فيه بشأن تحذير MaxMind، لكن لم يكن لدي وقت لقراءة سوى لمحة سريعة قبل أن أسجل الخروج أمس.
يتم إنشاء ملف CSV من Salesforce ويحتوي على عنوان بريد إلكتروني واحد في كل سطر، بدون فواصل أو مسافات. عندما أقوم بلصقه في محرر نصوص أساسي، يبدو جيدًا تمامًا؛ لا توجد أحرف إضافية أو أي شيء آخر. لقد جربت أيضًا باستخدام ملف CSV جديد بعنوان بريد إلكتروني واحد وكان لدي نفس الخطأ.
بالمعنى الدقيق للكلمة، فهو ليس ملف CSV إذن، والذي يرمز إلى “القيم المفصولة بفواصل” . لكنني أعرف أن امتداد الملف يستخدم على نطاق واسع أيضًا مع فواصل أخرى، والأهم من ذلك، أن فواصل الأسطر شائعة كفاصل لمجموعة البيانات، لذا يجب أن يعمل بريد إلكتروني واحد في كل سطر، و… إنه يعمل هنا.
في الواقع، لقد أجريت اختبارًا خاطئًا بالأمس، حيث أضفت بريدي الإلكتروني الصحيح أولاً والثاني غير الصحيح. اعتقدت أنه يتخطى رسائل البريد الإلكتروني غير الموجودة بصمت، ولكنه في الواقع يحلل الإدخال الأول لكل سطر فقط، وبالتالي لا يسمح بعناوين بريد إلكتروني متعددة في كل سطر. الكود يوضح هذا بشكل واضح:
line = CSV.parse_line(line).first&.strip
ثم يضيف قيمة line بأكملها كبريد إلكتروني واحد أو إدخال اسم مستخدم للمطابقة.
عندما أضيف رسائل بريد إلكتروني متعددة في كل سطر، مع خلط الصحيح وغير الصحيح، فإنه يعرض العدد الصحيح للدُفعات التي تم تطبيقها بنجاح، ويسرد جميع رسائل البريد الإلكتروني التي لم يتمكن من مطابقتها. تم اختباره مرة أخرى باستخدام نهايات الأسطر لنظام Windows و UNIX:
ومع ذلك، فإن الأسطر المتعددة أو القيم المتعددة ليست مشكلتك على أي حال، إذا فشلت في البريد الإلكتروني الأول على الرغم من أنه صحيح . لست متأكدًا من كيفية تصحيح الأخطاء بسهولة دون إعادة بناء مثيل Discourse. هل تستخدم المثبت الرسمي لصورة Docker؟
تحرير: هههه، تم إضافة تعليق الصورة بواسطة بعض الذكاء الاصطناعي، باللغة الألمانية، على الأقل هنا في متصفح اللغة المحلي الألماني الخاص بي. مفصل جدًا، وصحيح جدًا .
سأتحقق مع فريق تكنولوجيا المعلومات لدينا، فهم من قام بإعداده لذلك لست متأكدًا تمامًا مما إذا كان على Docker.
أيضًا، تحديث غريب إلى حد ما… أعتقد أنني قمت بحله، ولكن لا أعرف لماذا أو كيف.
إليك سلسلة الأحداث الحالية الخاصة بي:
كان الملف الأصلي ملف .xlsx تم تنزيله من Salesforce، والذي قمت بحفظه كملف CSV - لم يمنح هذا المستخدم التجريبي الخاص بي، ولكنه عمل مع الآخرين.
اختبرت ببريد إلكتروني واحد فقط في ملف CSV جديد - لم ينجح ذلك أيضًا.
جربت بعض الأشياء لتنظيف البيانات - هذا هو الوقت الذي بدأت فيه في الحصول على خطأ 502 ولم يتم إرسال أي رسائل بريد إلكتروني. أعتقد أنني ربما أضفت حقولًا فارغة إضافية أو شيئًا غريبًا هنا جعل الملف كبيرًا جدًا وغير قابل للتحليل، وبالتالي خطأ 502 (الجديد).
يبدو أن لصق رسائل البريد الإلكتروني من نفس ملف CSV في ملف CSV جديد وجديد قد حل المشكلة - تم منح المستخدم التجريبي الخاص بي الشارة!
… وربما الجزء الأكثر غرابة، هو الوحيد الذي كانت تنقصه الشارة؟! لا أعرف ما إذا كنت أصدق هذا تمامًا، لأنه يبدو غير مرجح أن تؤثر هذه المشكلة على بريده الإلكتروني فقط وليس على أي شخص آخر. إذا كان ذلك يحدث فرقًا، فقد كان بريده الإلكتروني هو البريد الإلكتروني الأول في الملف.
من الرائع أنك قمت بحلها. ربما دخلت بعض الأحرف الخاصة، مثل “test” و \"test\" هنا في discourse مما أدى إلى ظهور أحرف اقتباس مزدوجة مختلفة، على الرغم من أنني أدخلت نفس الشيء.
يوجد حد 50,000 إدخال في كود Discourse لملف CSV هذا، ربما يمكن تجاوزه باستخدام الإعدادات. ومع ذلك، أعتقد أنه لم يكن هناك 50,000 سطر؟ ربما يكون المحلل نفسه، أو حتى خادم الويب، لديه حدود أخرى أقل للحجم/الأحرف.
بالمناسبة، يمكنك ببساطة تمرير ملف CSV جديد يحتوي على جميع رسائل البريد الإلكتروني (وهذا البريد الإلكتروني المحدد تم تصحيحه) إلى شارة الدُفعات وسيعرض لك النتائج كما لو تم تعيين كل شيء من جديد. لذلك يمكنك التحقق والتأكد مما إذا كان الآخرون قد حصلوا عليه بالفعل.