2009-03-27 17 views
8

Có ai đã tìm thấy cách hay để nhúng CSS vào email được tạo theo chương trình. Cách tốt nhất tôi đã tìm thấy là đặt mã kiểu vào tệp tài nguyên và gọi nó vào mã.CSS trên Email

Một emample sẽ

Dim objBuilder 
objBuilder = New StringBuilder 

objBuilder.Append(Resources.SystemEmail.CSSStyle) 
objBuilder.Append("My Styled Email") 

Dim _Body As String = objBuilder.ToString() 

này sẽ xây dựng phần thân của email

Có cách nào để làm cho một tập tin mẫu cho một email hoặc một cách tốt hơn để gọi một style sheet vào một .

Các mã trong file resx tôi sẽ

<STYLE TYPE="text/css"> 
<!-- 
body 
{ 

    font-family: Tahoma, Verdana, Arial; 
    font-size: 10pt; 
    padding: 3px 0px 0px 0px; 
    margin: 0px 0px 0px 0px; 

} 
--> 
</STYLE> 

Và gọi này vào chuỗi sẽ gọi inline này

Và với câu trả lời dưới đây để gửi thông điệp mà tôi sẽ sử dụng này

Dim client As New SmtpClient("localhost") 
Dim toAddr As New MailAddress(MailRecipients) 
Dim fromAddr As New MailAddress(MailFrom) 
Dim message As New MailMessage(fromAddress, toAddress) 


message.Subject = "The Subject" 
message.Body = _Body 
message.IsBodyHtml = True 
message.BodyEncoding = System.Text.Encoding.UTF8 

client.Send(message) 
+0

Tôi rất ngạc nhiên khi không ai cảnh báo bạn về việc gửi email HTML. – Simon

+0

Vui lòng giải thích, điều này có dành cho những người không hỗ trợ nó không. – Paul

+0

Hỗ trợ chọn phương tiện truyền thông thậm chí còn tồi tệ hơn. Tôi đã thấy rằng hầu hết khách hàng bao gồm cả những khách hàng rất phổ biến sẽ bỏ qua bất kỳ CSS nào có bộ chọn phương tiện. Vì vậy, bạn không thể gửi email HTML và có các phiên bản in/hiển thị riêng biệt. Một lý do khác để có ít html trong email nhất có thể và thay vào đó hãy sử dụng liên kết. – Myforwik

Trả lời

13

Cách duy nhất chúng tôi đã thành công là bao gồm nội tuyến CSS. Tiêu đề CSS kiểu đầu trang tài liệu không nhất quán hoặc đáng tin cậy.

Ngoài ra, hãy đảm bảo tiêu đề email của bạn được đặt thành: Loại nội dung: văn bản/html; charset = ISO-8859-1

EDIT UTF-8 cũng là một lựa chọn tốt. Điểm KEY của câu lệnh đó là loại Nội dung được đặt thành văn bản/html

+0

+1 cho nội dòng, -1 cho ISO-8859-1. Bạn có thể đưa ra lý do chính đáng để sử dụng ISO-8859-1 trên UTF-8 (năm 2009, tức là với sự hỗ trợ UTF8 phổ biến)? – Piskvor

+0

Tôi đang sử dụng Piskvor, UTF-8 được hỗ trợ tốt và latin1 không cung cấp các ký tự cần thiết –

+0

Chúng tôi sử dụng ISO-8859-1 trên toàn cầu vì các lỗi khác nhau mà chúng tôi gặp phải thông qua các trang web của chúng tôi được hiển thị không đúng trên máy tính của mọi người. Phần lớn nó liên quan đến cách dữ liệu được khách hàng của chúng tôi gửi (từ từ, trình soạn thảo văn bản, v.v.) – jerebear

1

CSS nội tuyến là phải đảm bảo khả năng tương thích tối đa.

Một số hệ thống như MailChimp sẽ đưa các lớp phần tử của bạn, phân tích cú pháp CSS của bạn và thay thế các thuộc tính lớp bằng kiểu nội tuyến. Bạn có thể viết mã của riêng bạn để làm điều này.

4

Bạn không may cần bao gồm nội tuyến CSS trong các phần tử để có bất kỳ khả năng tương thích mơ hồ nào giữa các ứng dụng email. Ngoài ra, bạn nên sử dụng các bảng để bố trí (cột, vv) vì bố cục CSS div thường không thành công. Ảnh đính kèm cũng không thành công chủ yếu cho cid: URL. Thunderbird là ứng dụng thư khách tốt nhất cho khả năng tương thích (rõ ràng, vì nó sử dụng trình kết xuất Gecko). Outlook là tồi tệ nhất.

Ngoài ra, hãy sử dụng chế độ đa phần bằng một thay thế văn bản thuần túy. Tôi sử dụng cơ sở dữ liệu để lưu trữ các mẫu email và có các mẫu văn bản và html đơn giản, với các giá trị {{replaceable}}.

1

Ngoài css nội tuyến mà mọi người đang đề xuất, hãy nhớ rằng email thường được hiển thị trực tuyến trong một trang web khác, chẳng hạn như thông qua Yahoo! Mail, Hotmail hoặc Gmail. Bạn có thể tưởng tượng sự hỗn loạn sẽ xảy ra nếu khai báo kiểu body hoặc tên lớp ngẫu nhiên. Bạn nên lập kế hoạch cho khả năng bất kỳ thứ gì không được xác định nội dòng sẽ bị loại bỏ, mặc dù một số hệ thống có thể cố gắng bảo toàn các quy tắc này với thành công không thể đoán trước.

+0

Vì vậy, css trên email sẽ không bao giờ làm cho email giống nhau trên mỗi hệ thống thư, Có các tùy chọn khác ví dụ như old hat html hay không mã hóa – Paul

+0

Bạn có thể sử dụng kiểu, nhưng bạn không thể dựa vào việc thu thập các kiểu đó gọn gàng và hiệu quả vào một khối kiểu. Sử dụng thuộc tính style trên các phần tử HTML của bạn, bạn có thể kiểm soát các thuộc tính font. Chỉ mong đợi mã của bạn được lặp đi lặp lại và tiết. Phông chữ không phải là xấu, nhưng định vị là một không-đi. –

7

Đây là một hướng dẫn toàn diện mà phong cách css được hỗ trợ bởi mỗi ứng dụng email: http://www.campaignmonitor.com/css/

Hướng dẫn vào những gì bạn sẽ cần phải biết: http://www.campaignmonitor.com/design-guidelines/

Ngoài ra còn có một bộ sưu tập lớn của tự do các mẫu được tạo sẵn mà bạn có thể sử dụng làm tham chiếu: http://www.campaignmonitor.com/templates/

Cuối cùng, cùng một công cụ cung cấp cho bạn cách thông báo của bạn sẽ hiển thị trong mỗi ứng dụng email khách với mức phí hợp lý: http://www.campaignmonitor.com/testing/

+0

câu trả lời xuất sắc và liên kết tham khảo tuyệt vời từ những người biết email của họ. –

2

Sử dụng premailer để di chuyển nội tuyến css của bạn.

Các vấn đề liên quan