Trước đây tôi đã sử dụng MAPISendMail để khởi chạy Outlook (hoặc bất kỳ ứng dụng email MAPI mong muốn nào) từ một ứng dụng C++ có tệp đính kèm. (Tương tự như chức năng Gửi Email của Microsoft Word).Khởi chạy ứng dụng email (MAPI) từ C# (có tệp đính kèm)
Tôi cần thực hiện tương đương từ ứng dụng C# và để ứng dụng hoạt động khi chạy trên XP, Vista, Server 2008 (và Windows 7 tôi giả sử).
MAPISendMail là không đi theo Vista/2008 vì nó luôn trả về MAPI_ E_FAILURE khi Outlook đang chạy và MAPI không được hỗ trợ trong mã được quản lý. Ngay cả sau khi kiểm tra sửa lỗi này: http://support.microsoft.com/kb/939718 Tôi không thể làm cho nó hoạt động đáng tin cậy.
Tôi biết rằng Microsoft Word & Adobe Reader 9 có thể vừa khởi chạy Outlook với tệp đính kèm trong Vista.
Giải pháp tương thích C# sẽ được ưu tiên nhưng tôi sẽ hài lòng với bất kỳ thứ gì hoạt động (không phải sử dụng MAPI). Tôi dường như không thể tìm thấy "giải pháp" hiện tại là gì. Không có câu trả lời hiện có nào trên Stack Overflow dường như bao gồm cả điều này.
Edit:
Tôi biết MAPI và C# không làm việc cùng nhau, vì vậy tôi sẽ mất một C/C++ giải pháp mà làm việc trong Vista và Server 2008 khi KHÔNG chạy as administrator. Xem Adobe Reader 9 & Microsoft Word làm ví dụ hoạt động.
Tôi e rằng mình không có tin vui cho bạn. Bài đăng này dường như chỉ ra rằng bạn không nên sử dụng MAPI hoặc CDO với .net ở tất cả: http://blogs.msdn.com/mstehle/archive/2007/10/03/fyi-why-are-mapi-and- cdo-1-21-not-supported-in-managed-net-code.aspx – JMarsch
@JMarsch, yep đọc trước đó. Như tôi đã đề cập trong câu hỏi, tôi hài lòng với câu trả lời không .NET. Tôi không thể nhận MAPISendMail hoạt động AT ALL trong Vista hoặc Server 2008. – Steven
Bạn có thực sự muốn chỉ gửi một email có tệp đính kèm không. Hoặc người dùng cuối thực sự cần phải có điều này mở trong triển vọng? – PeteT