كيفية إرسال رسائل البريد الإلكتروني مع عمل ميلر و SendGrid في القضبان 5

تركز هذه المقالة على إرسال بريد إلكتروني في الإنتاج وتفترض أنك عملت مع ActionMailer مسبقًا. إذا كنت ترغب في الحصول على مقالة كاملة حول استخدام ActionMailer من أجل التطوير ، فأخبرني في التعليقات!

ما هو ActionMailer؟

ActionMailer هو جزء أساسي من القضبان. إنها أسهل طريقة لإرسال بريد إلكتروني عبر تطبيق Rails (RIP ar_mailer). فكر في الأمر على أنه مجموعة منفصلة من وحدات التحكم وطرق العرض التي بدلاً من تقديم HTML على صفحة من خلال طلب HTTP ، قم بتقديم قالب بريد إلكتروني يتم إرساله عبر SMTP إلى عنوان بريد إلكتروني.

Send لماذا SendGrid؟

أنا أحب SendGrid ، لأنه بخلاف PostMark ، أو العديد من الخدمات المماثلة الأخرى ، يمكنك التسجيل باستخدام حساب بريد إلكتروني عادي في Gmail. لا يتطلب منك أن يكون لديك بالفعل نطاق مع بريد إلكتروني (وهو أمر رائع إذا كنت لا تزال تختبر ، أو لم يتم إعداد خوادم MX بعد ، أو إذا كنت تستخدم خدمة جهة خارجية مثل Heroku).

أحب أيضًا أن SendGrid لا يجعلك تقوم بتثبيت الجواهر المعقدة أو الإضافات Heroku. يستخدم SMTP لبروتوكول الإرسال الخاص به ويعمل ببساطة.

Send لـ SendGrid. (غير مدعوم)

كيفية إرسال البريد الإلكتروني مع SendGrid في الإنتاج

الخطوة 1: الاشتراك في حساب SendGrid

إنشاء حساب على SendGrid. يمكنك إرسال ما يصل إلى 100 رسالة بريد إلكتروني في اليوم على خطة مجانية ، وسوف يكلفك 100000 / شهر فقط 14.95 دولار. ليس سيئا جدا!

الخطوة 2: إعداد بيئة الإنتاج Rails 5

تتمثل الخطوة الأولى في تعيين طريقة التسليم في تطبيق Rails الخاص بك على أنها SMTP. سيضمن هذا إرسال رسائل البريد الإلكتروني بالفعل إلى الإنتاج. الخطوة الثانية هي وضع عنوان URL الافتراضي لتطبيقك ، وإلا فلن تعمل أي روابط تعود إلى الموقع الذي تضيفه داخل رسائل البريد الإلكتروني الخاصة بك.

# التكوين / بيئات / production.rb
config.action_mailer.delivery_method =: smtp
config.action_mailer.default_url_options = {host: "http: // TODO_PUT_YOUR_DOMAIN_HERE"}

الخطوة 3. إضافة بيانات اعتماد البريد الإلكتروني الخاص بك في ملف مهيئ SMTP.

هذه الخطوة مهمة. لا ، أكرر ، لا ، اترك أوراق اعتمادك مكشوفة داخل تطبيق القضبان. قم بحمايتهم باستخدام جوهرة مثل قضبان dot-env لأنه إذا لم تفعل ذلك وقمت بكشف بيانات الاعتماد لـ GitHub ، فيمكن أن تحدث أشياء سيئة (القصة الحقيقية: أنا الآن شخص اضطر إلى محاربة رسوم بقيمة 10،000 دولار بعد ترك بيانات اعتماد AWS S3 على GitHub) .

يتضمن مُهيئ بروتوكول SMTP العنوان والمنفذ المستخدم للاتصال بـ SendGrid وكذلك بيانات الاعتماد الخاصة بك. هناك طريقتان للاتصال بـ SendGrid. الطريقة السهلة هي فقط توصيل اسم المستخدم وكلمة المرور الخاصة بك ، ولكن يمكنك أيضًا إنشاء مفتاح SendGrid API وتعيين بيانات الاعتماد بالمفتاح بدلاً من ذلك. (بفضل Kevin Berthier للحصول على مقتطف الشفرة!)

قم بإنشاء ملف smtp.rb في مجلد المهيئات إذا لم يكن موجودًا بالفعل.

# config / initializers / smtp.rb
ActionMailer :: Base.smtp_settings = {
  العنوان: 'smtp.sendgrid.net' ،
  الميناء: 587 ،
  النطاق: "yourdomain.com" ،
  اسم المستخدم: ENV ['SENDGRID_USERNAME'] ،
  كلمة المرور: ENV ['SENDGRID_PASSWORD'] ،
  المصادقة:: تسجيل الدخول ،
  enable_starttls_auto: صحيح
}
# إذا كنت تستخدم مفتاح API
ActionMailer :: Base.smtp_settings = {
  النطاق: "YOUR_DOMAIN.COM" ،
  العنوان: "smtp.sendgrid.net" ،
  الميناء: 587 ،
  المصادقة:: عادي ،
  اسم المستخدم: 'apikey' ،
  كلمة المرور: ENV ['SENDGRID_API_KEY']
}

إذا كنت تستخدم جوهرة dot-env rails ، فتأكد من إضافة بيانات الاعتماد الخاصة بك إلى ملف البيئة.

# .env
SENDGRID_USERNAME = your_user
SENDGRID_PASSWORD = your_password
SENDGRID_API_KEY = your_key

الخطوة 4. إرسال بيانات الاعتماد الخاصة بك إلى بيئة الإنتاج الخاصة بك.

إذا كنت تستخدم Heroku للنشر ، فلا تنسَ تعيين بيانات الاعتماد في الجهاز الطرفي ، بحيث تكون مرئية في بيئة الإنتاج لديك

heroku config: الحصول على SENDGRID_USERNAME
heroku config: الحصول على SENDGRID_PASSWORD

5. الخطوة 5. أنت الآن على استعداد لإرسال بريد إلكتروني!

اكتب هذا البريد الإلكتروني الأول وشاهد SendGrid تفعل بقية.