Làm thế nào để bạn tạo và gửi email từ ứng dụng Rails, có chứa hình ảnh và định dạng thích hợp? giống như những gì bạn nhận được từ facebook và thích.Làm cách nào để tạo email với css và hình ảnh từ Rails?
Trả lời
Giả sử bạn biết cách gửi email thuần văn bản thông thường từ Rails bằng ActionMailer, để nhận được HTML
email hoạt động, bạn cần đặt loại nội dung cho email của mình.
Ví dụ, notifer của bạn có thể trông như thế này:
class MyMailer < ActionMailer::Base
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "[email protected]"
body :user => recipient
content_type "text/html"
end
end
Lưu ý dòng content_type "text/html"
. Điều này yêu cầu ActionMailer gửi email có loại nội dung là text/html
thay vì mặc định text/plain
.
Tiếp theo, bạn phải đặt đầu ra chế độ xem thư của mình là HTML
. Ví dụ, xem tập tin của bạn app/views/my_mailer/signup_notification.html.erb
có thể trông giống như sau:
<!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>
Như bạn có thể thấy quan điểm HTML
có thể bao gồm một thẻ <style>
để xác định phong cách cơ bản. Không phải tất cả HTML
và CSS
đều được hỗ trợ, đặc biệt là trên tất cả ứng dụng thư khách, nhưng bạn chắc chắn phải có đủ quyền kiểm soát định dạng đối với kiểu văn bản.
Hình ảnh nhúng là một mẹo nhỏ nếu bạn định hiển thị các email được đính kèm. Nếu bạn chỉ đơn giản là bao gồm các email từ các trang web bên ngoài, bạn có thể sử dụng một thẻ <img />
như bạn thường làm trong HTML
. Tuy nhiên, nhiều ứng dụng thư khách sẽ chặn các hình ảnh này hiển thị cho đến khi người dùng ủy quyền. Nếu bạn cần hiển thị hình ảnh đính kèm, trình cắm thêm Rails Inline Attachments có thể đáng xem.
Để biết thêm thông tin về hỗ trợ gửi thư Rails, các ActionMailer documentation là một nguồn lực lớn
Chỉ cần lưu ý: Gmail sẽ ** không hỗ trợ ** CSS bên ngoài. Nếu bạn muốn CSS hiển thị đúng trong Gmail, bạn phải sử dụng kiểu nội tuyến như '
Bạn có thể tự động điền các kiểu bằng Roadie: https://github.com/Mange/roadie –
Đá quý Premailer cũng rất tốt cho nội tuyến phong cách. Ngoài ra còn có một gem được gọi là inline_css sử dụng Premailer để làm cho nó dễ sử dụng trong các mẫu/bố cục email của bạn. – scottwb
Đọc How to Create Great HTML Emails with CSS, đây là một khởi đầu tốt. Tất cả các email cần phải tuân theo HTML 3.0!
Đối với hình ảnh mà bạn chỉ có thể sử dụng bình thường image_tag
helper sau khi bạn đã xác định các ActionMailer::Base.asset_host = 'http://www.your-domain.com'
tôi sử dụng Kẹp giấy để lưu trữ hình ảnh của tôi vì vậy trong trường hợp của tôi, tôi có thể thêm một hình ảnh vào một email bằng cách sử dụng này.
image_tag result.photo.url(:small)
Đây là 'config.action_mailer.asset_host' ngay bây giờ – elsurudo
- 1. Làm cách nào để tạo hình ảnh vừa với hộp hình vuông 200 pixel bằng CSS?
- 2. Làm thế nào để cấu hình email Devise với Heroku và Sendgrid trong Rails?
- 3. Làm cách nào để tạo hình ảnh OpenCV từ hình ảnh PIL?
- 4. Làm cách nào để tạo một hình ảnh có thể vẽ từ nhiều hình ảnh?
- 5. Android: Làm cách nào để đính kèm hình ảnh tạm thời, được tạo vào email?
- 6. Làm thế nào để tạo kiểu thẻ hình ảnh trong Ruby on Rails
- 7. Cách gửi hình ảnh nhúng trong email từ excel
- 8. Làm cách nào để tạo tệp PDF từ nguồn HTML/CSS (bao gồm hình ảnh) bằng Python?
- 9. làm thế nào để tạo ra hình dạng này với chỉ divs và css
- 10. Cách thích hợp để nhúng hình ảnh vào email bằng cách sử dụng Rails là gì?
- 11. Cách tạo url của hình ảnh GRAVATAR từ một email cụ thể
- 12. Làm thế nào để tạo hiệu ứng hình ảnh với php, hình ảnh nghiêng vv?
- 13. Cách tạo hình ảnh từ UIView/UIScrollView
- 14. Làm cách nào để tạo hình ảnh trống (0x0)?
- 15. Theo dõi email bằng PHP và hình ảnh
- 16. Làm cách nào để phóng to hình ảnh và căn giữa hình ảnh?
- 17. Làm cách nào để kết hợp bóng văn bản CSS và "nền-hình ảnh: -webkit-gradient"
- 18. Cách tạo email có hình ảnh nhúng tương thích với hầu hết ứng dụng thư khách
- 19. Có cách nào để tạo một hình ảnh Gif từ nhiều hình ảnh trong Java không?
- 20. Cách tạo hình ảnh di chuột trong css?
- 21. Làm cách nào để tạo hình ảnh GIF trong .NET?
- 22. Làm cách nào để gửi văn bản thuần túy thay vì email HTML từ Rails?
- 23. Làm cách nào để tạo hình ảnh động trong SFML
- 24. CSS và hình ảnh trên Trang chính
- 25. Cách hiển thị hình ảnh trong Javascript với Rails 3.1
- 26. Làm cách nào để tạo Lớp trên Hình ảnh?
- 27. Cách tạo hình ảnh từ UILabel?
- 28. Tạo video từ hình ảnh
- 29. Làm cách nào để nhúng hình ảnh vào thư email Outlook HTML?
- 30. Làm cách nào để lưu hình ảnh từ canvas Ba.js?
phản hồi của tôi có trả lời câu hỏi của bạn không? –
@ bjeanes - Tôi đã không thực sự có thời gian để thử điều này vì tôi đã bận rộn với cái gì khác, nhưng có vẻ như giải pháp của bạn là trên dòng bên phải. cảm ơn. Sẽ cố gắng và cập nhật. – Akshay