كيف يمكنني إنشاء بريد إلكتروني مع المغلق والصور من القضبان؟

StackOverflow https://stackoverflow.com/questions/472450

سؤال

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

هل كانت مفيدة؟

المحلول

وعلى افتراض انك تعرف كيفية إرسال رسائل البريد الإلكتروني العادية سهل النص من القضبان باستخدام ActionMailer، للحصول على رسائل البريد الإلكتروني HTML العمل تحتاج إلى تعيين نوع محتوى البريد الإلكتروني الخاص بك.

وعلى سبيل المثال، notifer الخاص بك قد تبدو مثل هذا:

class MyMailer < ActionMailer::Base
  def signup_notification(recipient)
    recipients   recipient.email_address_with_name
    subject      "New account information"
    from         "system@example.com"
    body         :user => recipient
    content_type "text/html"
  end
end

لاحظ خط content_type "text/html". هذا يقول ActionMailer لإرسال البريد الإلكتروني مع نوع المحتوى من text/html بدلا من text/plain الافتراضية.

والقادم لديك لجعل حياتك الارسال الناتج جهات النظر HTML. على سبيل المثال، وجهة نظركم ملف app/views/my_mailer/signup_notification.html.erb قد تبدو كما يلي:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css" media="screen">
      h3 { color: #f00; }
      ul { list-style: none; }
    </style>
</head>
<body>
  <h3>Your account signup details are below</h3>
  <ul>
    <li>Name: <%= @user.name %></li>
    <li>Login: <%= @user.login %></li>
    <li>E-mail: <%= @user.email_address %></li>
  </ul>
</body>
</html>

وكما ترون وجهة نظر HTML يمكن أن تتضمن علامة <style> لتحديد الأنماط الأساسية. لا يتم اعتماد جميع HTML وCSS، وخاصة في جميع عملاء البريد، ولكن يجب أن يكون بالتأكيد تحكم التنسيق كافية على أنماط النص.

وتضمين الصور هو تريكير الشيء إذا كنت تخطط لعرض رسائل البريد الإلكتروني المرفق. إذا كنت ببساطة بما في ذلك رسائل البريد الإلكتروني من مواقع خارجية، يمكنك استخدام علامة <img /> كما تفعل عادة في HTML. ومع ذلك، فإن العديد من عملاء البريد منع هذه الصور من الظهور حتى يخول المستخدم ذلك. إذا كنت بحاجة إلى عرض الصور المرفقة، القضبان المكونات في المضمنة المرفقات قد يكون من المفيد إلقاء نظرة .

لمزيد من المعلومات عن القضبان بريدية للدعم، و ActionMailer الوثائق هو عظيم الموارد

نصائح أخرى

لالصور يمكنك فقط استخدام المساعد image_tag الطبيعي بعد أن كنت قد حددت ActionMailer::Base.asset_host = 'http://www.your-domain.com'

ويمكنني استخدام مشبك الورق لتخزين الصور بلدي حتى في حالتي أنا يمكن إضافة صورة إلى البريد الإلكتروني باستخدام هذا.

image_tag result.photo.url(:small)

كيفية إنشاء رسائل البريد الإلكتروني HTML كبيرة مع CSS ، انها بداية جيدة. ويتعين على جميع رسائل البريد الإلكتروني لمتابعة HTML 3.0!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top