إرسال البريد الإلكتروني مع برنامج نصي روبي - 501 5.5.4 عنوان غير صالح
سؤال
وأنا أحاول لإرسال البريد الإلكتروني مع برنامج نصي روبي، ولكن لي دليل على مفهوم لا يعمل. أستطيع أن telnet إلى خادم البريد وإرسال البريد بهذه الطريقة، ولكن هذا السيناريو يسبب خادم البريد لرفع خطأ: 501 5.5.4 Invalid Address
#!/usr/bin/ruby
require 'net/smtp'
def send_email(to, subject = "", body = "")
from = "my@email.com"
body= "From: #{from}\r\nTo: #{to}\r\nSubject: #{subject}\r\n\r\n#{body}\r\n"
Net::SMTP.start('192.168.10.213', 25, '192.168.0.218') do |smtp|
smtp.send_message body, from, to
end
end
send_email "my@email.com", "test", "blah blah blah"
في مخطوطتي الفعلي، my@email.com
هو بريد إلكتروني صحيح. 192.168.10.213
هو ملقم البريد و192.168.0.218
هو بلدي الملكية الفكرية المحلية. لاحظ أن أنا تشغيل ويندوز إكس بي، وخادم البريد هو خادم الصرف.
وأنا لا أفهم لماذا يعمل telnet مع نفس القيم، ولكن هذا السيناريو يثير الخطأ عنوان غير صالح.
ويمكن لأي شخص أن يساعدني؟
تعديل : في رمز أعلاه يعمل الآن على ما يرام، وأنا يقم أصلا الفواصل في استدعاء الأسلوب النهائية. أشعر احمق.
المحلول 3
هل تصدق ذلك؟ أشعر احمق، أنا فقط الفواصل مفقود في استدعاء الأسلوب ...
وsend_email "my@email.com", "test", "blah blah blah"
وأنا أشعر بالحرج.
وعلى أي حال، رمز أعلاه يعمل كبيرة إذا كان أي شخص مهتم. فقط لا يستبعد الفواصل كما فعلت.
نصائح أخرى
تأكد من عنوان بريدك الإلكتروني الفعلي لا يحتوي على أحرف غير صالحة. على سبيل المثال، انظر هذا السؤال .
وهناك خلل في التعليمات البرمجية. لمستخدم ضار يمكن إدراج المزيد من رؤوس إلى البريد الإلكتروني الخاص بك باستخدام أسطر جديدة في هذا الموضوع.