7

Vấn đề này xuất hiện khi tôi đang cố gắng gửi một tin nhắn HTML có hình ảnh nội tuyến (tệp đính kèm) qua EWS. Tuy nhiên tôi đã sao lưu vào biểu mẫu đơn giản nhất và thấy rằng tôi thậm chí không thể gửi tin nhắn HTML.Làm cách nào để gửi HTML (nhiều phần/thay thế) từ Exchange Web Services (2010 SP1)

Tôi đang sử dụng C#, .NET 4, EWS API 1.1, Exchange Server 2010 SP1.

Dưới đây là cốt lõi của mã của tôi:

ExchangeConnection = new ExchangeService(ExchangeVersion.Exchange2010_SP1); 
ExchangeConnection.Credentials = new WebCredentials(Username, Password, Domain); 
ExchangeConnection.Url = new Uri(ServiceURI); 

string MailBody = @"<html><head></head><body> 
    This is a <b>test</b> <strong>HTML</strong> <em>message</em>.<br><br> 
    Did it work?</body></html>"; 

NewMessage = new EmailMessage(ExchangeConnection); 
NewMessage.Subject = "Test HTML Message #001"; 
NewMessage.Body = MailBody; 
NewMessage.Body.BodyType = BodyType.HTML; 
NewMessage.ToRecipients.Add("[email protected]"); 
NewMessage.Send(); 

Sử dụng mã tôi nhận được một tin nhắn với nội dung sau:

Subject: Test HTML Message #001 
Thread-Topic: Test HTML Message #001 
Thread-Index: Acuy3U6nqQTa4W4ZQu6ueHPb2nPDPg== 
Date: Thu, 13 Jan 2011 04:49:48 +0000 
Message-ID: <[email protected]> 
Accept-Language: en-US 
Content-Language: en-US 
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [x.x.x.x] 
Content-Type: text/plain; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 
MIME-Version: 1.0 
X-Spam: [F=0.2000000000; CM=0.500; S=0.200(2010122901)] 
X-MAIL-FROM: <[email protected]> 
X-SOURCE-IP: [67.136.148.58] 
X-AnalysisOut: [v=1.0 c=1 a=WYc53Y7r_f4A:10 a=BLceEmwcHowA:10 a=kj9zAlcOel] 
X-AnalysisOut: [0A:10 a=xqWC_Br6kY4A:10 a=ERe/uVw5acJt2lgRGY+7Og==:17 a=10] 
X-AnalysisOut: [TGqZ3wK2PL4t1FdnoA:9 a=mfhh-WWaJa5gWHOyyF854Vzt7EAA:4 a=Cj] 
X-AnalysisOut: [uIK1q_8ugA:10] 

This is a test HTML message. 

Did it work? 

Không có tuyên bố MIME và không có text/html phần.

Nếu tôi gửi một tin nhắn tương tự thông qua Outlook (trên máy chủ Exchange cùng) tôi nhận được một cái gì đó như thế này:

Subject: Test From Outlook 
Thread-Topic: Test From Outlook 
Thread-Index: AcuzMwJCFB8PS6wYQeeV4IeSkT/mxQ== 
Date: Thu, 13 Jan 2011 15:03:17 +0000 
Message-ID: <[email protected]> 
Accept-Language: en-US 
Content-Language: en-US 
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [x.x.x.x] 
Content-Type: multipart/alternative; 
    boundary="_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_" 
MIME-Version: 1.0 
X-Spam: [F=0.2000000000; CM=0.500; S=0.200(2010122901)] 
X-MAIL-FROM: <[email protected]> 
X-SOURCE-IP: [67.136.148.58] 
X-AnalysisOut: [v=1.0 c=1 a=olvCdMnC_oMA:10 a=BLceEmwcHowA:10 a=xqWC_Br6kY] 
X-AnalysisOut: [4A:10 a=ERe/uVw5acJt2lgRGY+7Og==:17 a=2iPVs5MlqxP_VJ4oz58A] 
X-AnalysisOut: [:9 a=x0_hJeNGqEWpZ67nkUaF-VHO8CMA:4 a=CjuIK1q_8ugA:10 a=yM] 
X-AnalysisOut: [hMjlubAAAA:8 a=SSmOFEACAAAA:8 a=bSa8Y9cTgW9e4uXm0lgA:9 a=w] 
X-AnalysisOut: [EVqP49dmlVP1afgSrUA:7 a=MTMROL1LpFqQeTH2_C9armvf4mgA:4] 

--_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_ 
Content-Type: text/plain; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 

This is an HTML message. 

What do the headers look like? 

Tony 

--_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_ 
Content-Type: text/html; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= 
... the correct html code for the message follows here ... 

bất cứ ai có thể giải thích cho tôi làm thế nào để có được một thông báo như các thứ hai thông qua các mã sử dụng EWS? Cảm ơn!

Trả lời

2

Tôi vừa gặp sự cố tương tự. Cuối cùng, chúng tôi đã đóng góp nó xuống một tài khoản cụ thể đang nhận được phiên bản email bị xáo trộn thay vì văn bản MIME nhiều phần thích hợp và HTML. Nó chỉ ra vấn đề là tài khoản này được thiết lập trong Exchange để có "Sử dụng thiết đặt mặc định" cho MAPI Rich Text email (trong tab General), khi các tài khoản khác được đặt thành "Never". Vì vậy, vấn đề cơ bản là Exchange biết về email liên hệ được gửi đến và cố gắng "thông minh" và gửi nó ở định dạng độc quyền cho Outlook, nhưng khách hàng cho địa chỉ đó không sử dụng Outlook và vì vậy họ đã bị không thể xem email chính xác. Tôi nghĩ rằng cũng có thể thay đổi cài đặt này ở cấp độ toàn cầu thay vì bởi người dùng, nhưng tôi không chắc nó ở đâu.

Lý do hoạt động khi được gửi qua Outlook là Outlook 2010 có thể gửi email theo cách buộc thư ở định dạng HTML, trong khi EWS managed API dường như không thể thực hiện điều đó.

0

Tôi vừa tìm thấy điều này page giải thích điều gì đang xảy ra và cách thay đổi cài đặt.

Đây là kết luận của họ:

Điều cuối cùng chúng tôi kiểm tra trong đó tiết lộ những gì vấn đề là để chạy PowerShell trao đổi sau “get-remotedomain | fl ”. Sau đó chúng tôi phát hiện ra rằng loại nội dung đã được đặt thành MimeText, "chuyển đổi tất cả thư thành tin nhắn MIME sử dụng định dạng văn bản" (tức là văn bản thuần túy). Sau đó chúng tôi đã thay đổi kiểu nội dung thành mimehtmltext (Chuyển đổi thư thành tin nhắn MIME sử dụng định dạng HTML, trừ khi tin nhắn gốc là tin nhắn văn bản. Nếu tin nhắn gốc là tin nhắn văn bản, tin nhắn gửi đi là tin nhắn MIME sử dụng định dạng văn bản) chạy lệnh sau “get-remotedomain | set-remotedomain -ContentType MimeHtmlText ”.

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