2017-12-11 2 views
1

Outlook 응용 프로그램에서 첨부 파일이있는 전자 메일을 보내려는 Outlook을 호출합니다. 지난 주까지 잘 작동했지만 지금은 메시지 아래에 직면하고 이메일은 전송되지 않습니다. "누가 이걸 보낼지 알아야합니다. 적어도 하나의 이름을 입력해야합니다."피하는 방법 "이 사람에게 보낼 사람을 알아야합니다. 적어도 하나의 이름을 입력해야합니다"C#

내가봤을 때 대부분의 기사는 Microsoft Office 업데이트를 롤백 할 것을 제안했습니다. 사무실을 완전히 옮긴 후 다시 설치했지만 동일한 문제가 발생했습니다. 이메일을 보내는 데 아래 코드를 사용하고 있습니다.

Outlook.Application oApp = new Outlook.Application(); 
      Outlook.MailItem eMail = (Outlook.MailItem)oApp.Application.CreateItem(Outlook.OlItemType.olMailItem); 
      eMail.Subject = "Subject goes here"; 
      eMail.To = "[email protected]"; 
      eMail.HTMLBody = "Body"; 
      String sDisplayName ="sample.pdf"; 
      int iPosition = (int)eMail.Body.Length + 1; 
      int iAttachType = (int)Outlook.OlAttachmentType.olByValue; 
      Outlook.Attachment oAttach = eMail.Attachments.Add("pdf path", iAttachType, iPosition, sDisplayName); 
      eMail.Importance = Outlook.OlImportance.olImportanceNormal; 
      ((Outlook._MailItem)eMail).Send(); 

Office 버전은 16.0.6741.2048이며, 오류 메시지가 이미지 링크를 추가 마이크로 소프트 오피스를

365 등록됩니다.

+0

'try catch''((Outlook._MailItem) eMail) .Send();'에이 줄을 넣으십시오. 오류가 발생하면 상태를 적어주십시오. 또한 메일 서버를 다시 시작하십시오 – MethodMan

+0

catch가 전체 코드 블록에 구현되었으며 메시지는 으로 나타납니다. "누가이 메일을 보낼지 알아야합니다. 적어도 하나의 이름을 입력해야합니다." –

+0

"메시지가 나타납니다"라고 할 때 - 프로그램에서 예외 개체입니까, 아니면 Outlook COM 인스턴스에서 만든 Win32 GUI 메시지 상자입니까? – Dai

답변

0

저는 로컬에서 새 프로젝트를 만들고 코드를 테스트 했으므로 완벽하게 작동합니다. 당신이받는 사람 누락

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); 
     Microsoft.Office.Interop.Outlook.MailItem eMail = (Microsoft.Office.Interop.Outlook.MailItem)oApp.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
     eMail.Subject = "Subject goes here"; 
     eMail.To = "[email protected]"; 
     eMail.HTMLBody = "Body"; 
     // String sDisplayName = "Resume.pdf"; 
     // int iPosition = (int)eMail.Body.Length + 1; 
     // int iAttachType = (int)Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue; 
     //' Microsoft.Office.Interop.Outlook.Attachment oAttach = eMail.Attachments.Add(@"‪C:\Users\Rahi\Desktop\", iAttachType, iPosition, sDisplayName); 
     // eMail.Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceNormal; 
     eMail.Send(); 

Outlook Result

전체 이름 공간 Microsoft.Office.Interop.Outlook으로 시도?

Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients; 
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add("[email protected]"); 
oRecip.Resolve(); 

이 항목을 확인하십시오. Reference을 확인하여 문제가 해결되기를 바랍니다.

+0

오류 메시지 "받는 사람, 참조 또는 숨은 참조 상자에 하나 이상의 이름이나 연락처 그룹이 있어야합니다." –

관련 문제