2011-07-13 39 views
10

Tôi có văn bản như "Xin chào, \ r \ n đây là bài kiểm tra \ r \ n Cảm ơn" Tôi đang gửi thư bằng lớp MailMessage. Tôi đã đặt thuộc tính "IsBodyHtml" thành false. Vấn đề là tôi nhận được thư mà không có ngắt dòng. Bạn có thể cho tôi biết những gì tôi đang thiếu?Ngắt dòng bị bỏ qua khi gửi thư dưới dạng văn bản thuần túy

+0

Tôi nghĩ câu hỏi này có thể được trả lời tốt hơn tại liên kết này: http://stackoverflow.com/questions/247546/outlook-autocleaning-my-line-breaks-and-screwing-up-my-email-format – user1387916

Trả lời

0

Để có thể kết hợp ngắt dòng, thay vì chỉ thử nghiệm đơn giản trong thư của bạn, bạn sẽ cần phải đặt html cơ thể thành true, tôi nghĩ vậy.

+0

Bạn có thể có ngắt dòng, bạn chỉ không thể có 2 ngắt dòng và một dòng có dấu chấm và không có gì khác.Trình tự cụ thể đó biểu thị kết thúc của thông báo và máy chủ SMTP sẽ đi đôi mắt chéo. – Tremmors

+0

Tôi nghĩ rằng việc gửi email html trở nên dễ dàng hơn. Một người nào đó (rất có thể từ tiếp thị/quản lý) sẽ yêu cầu một email đẹp khi họ thấy văn bản thuần túy và bạn sẽ chỉ phải làm lại. Tuy nhiên, tôi hiểu có những trường hợp chỉ có thể gửi email văn bản thuần túy. – Dean

8

Chúng tôi đã có cùng một vấn đề, nhưng nếu bạn xác định thông điệp của bạn cùng một lúc trong một Chuỗi, như trái ngược với một StringBuilder, bạn có thể xác định thông điệp của bạn như thế này:

string message = string.Format(
@"First Line: {0} 
Second Line: {1} 
ThirdLine: {2}", firstValue, secondValue, thirdValue); 

Xác định nội dung thư như thế này và đặt IsBodyHtml = false, sẽ cung cấp cho bạn các dòng mới mà bạn muốn.

Nếu không, sử dụng StringBuilder

var sb = new StringBuilder(); 
sb.AppendLine("FirstLine"); 
sb.AppendLine("SecondLine"); 
+0

IsBodyHtml = false đã thực hiện thủ thuật! Cảm ơn .. – Vaibhav

2

Nếu bạn đang đọc thư của bạn từ Outlook, nó có thể là Outlook mà là loại bỏ ngắt dòng, nghĩ rằng họ là phụ ngắt dòng. Bạn đã thử đọc thư từ một phần mềm khác - hoặc có thể là một webmail?

+0

+1 bạn đúng .. :) –

0

Một lý do phức tạp hơn này có thể xảy ra mà tôi chỉ phải đối phó với:

  • mail server của bạn thao tác thư gửi đi và bổ sung thêm một phiên bản html để bạn nhắn khác văn bản chỉ
0

tôi có một vấn đề tương tự, trong đó hầu hết các ngắt dòng của tôi đều hoạt động nhưng không phải. Nếu tôi nhấn trả lời email không hiển thị ngắt dòng, văn bản email gốc bên dưới thư trả lời sẽ hiển thị ngắt dòng (vì vậy điều này cho biết đó là vấn đề về triển vọng). Tôi đã thử câu trả lời được đề nghị của Environment.NewLine và rằng DID KHÔNG thay đổi bất cứ điều gì. Trong trường hợp của tôi, thêm một khoảng thời gian vào cuối của tuyên bố nơi tôi muốn dòng mới và sau đó đưa vào một \ r \ n đã làm các trick. Theo một liên kết trước tôi đã đăng trong cuộc thảo luận này, Outlook đang sử dụng một số quy tắc để lọc các nguồn cấp dữ liệu dòng và trong câu hỏi bắt đầu cuộc thảo luận này, tôi nhận thấy bạn không có dấu chấm ở cuối câu.

0

Tôi đã gửi thông báo E-Mail qua tập lệnh PowerShell và cũng không bị ngắt dòng khi xem thư trong Outlook. Đối với tôi giải pháp trong tệp .ps1 là:

$emailMessage.Body = "First Line" + "`r`n" + "Second Line" 
2

Đây là tính năng trong Outlook, bạn có thể tắt trong Outlook. Đi tới Tùy chọn - Thư - và trong "Định dạng thư", bạn bỏ chọn "Xóa ngắt dòng bổ sung trong các tin nhắn văn bản thuần túy".

Một giải pháp khác là thêm ba dấu cách vào cuối mỗi dòng, khi bạn gửi thư. Điều này dường như làm cho Outlook chấp nhận rằng nó không phải là một ngắt dòng phụ.

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