2012-06-27 3 views
5

Outlook을 통해 전자 메일을 보내기 위해 Interop을 사용하고 있지만 보낸 사람 전자 메일 주소를 지정할 수 없습니다.보낸 사람 주소를 지정하여 Microsoft.Office.Interop.Outlook.MailItem을 사용하여 메일을 보내는 방법

동일한 발신자 (보낸 사람)가 보낸 여러 명의 사용자에게 메일을 보내려고합니다. 나는 이메일 주소에서 언급 할 필요가있다. 그러나 내가 그것을 지정할 수있는 Intellisense를 사용하여 속성을 찾을 수 없습니다.

도와주세요.

Microsoft.Office.Interop.Outlook.Application olkApp1 = 
    new Microsoft.Office.Interop.Outlook.Application(); 
Microsoft.Office.Interop.Outlook.MailItem olkMail1 = 
    (MailItem)olkApp1.CreateItem(OlItemType.olMailItem); 
     olkMail1.To = txtpsnum.Text; 
     olkMail1.CC = ""; 
     olkMail1.Subject = "Assignment note"; 
     olkMail1.Body = "Assignment note"; 
     olkMail1.Attachments.Add(AssignNoteFilePath, 
      Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, 1, 
       "Assignment_note"); 
olkMail1.Save(); 
//olkMail.Send(); 

답변

5

Send 메서드는 기본 계정을 사용하여 메일을 보냅니다. 메일을 보낼 다른 계정을 지정하려면 Send 메서드를 호출하기 전에 Account으로 SendUsingAccount 속성을 설정하십시오.

var application = new Application(); 
var mail = (_MailItem) application.CreateItem(OlItemType.olMailItem); 
mail.To = "[email protected]"; 
.... 
Outlook.Account account = Application.Session.Accounts["MyOtherAccount"]; 
mailItem.SendUsingAccount = account; 
mail.Send(); 

자세한 내용은 여기에서 찾을 수 있습니다 : 당신은 메일을 보낼 전망을 사용하는

http://msdn.microsoft.com/en-us/library/ff184652.aspx

+0

메일을 만들어서 어떻게 열 수 있습니까? (mailto 같은?). 저장하지 않고 메일을 보내지 만 새 메일로 창을 만들 수 있습니까? –

+2

@Zaphod : 전자 메일을 넌 모달 윈도우로 표시하려면'mail.Display (false)'를 사용하십시오. –

+0

@ RomanD.Boiko : 귀하의 코멘트 주셔서 감사합니다, 그게 내가 무엇을 찾고 있었는지. –

12

. Outlook의 메일 주소는 from으로 구성되어야하므로 from 주소를 직접 입력 할 수 없습니다. 그러나 Outlook에서 사용할 수있는 계정을 선택할 수 있습니다. 예 :

using Outlook = Microsoft.Office.Interop.Outlook; 

Outlook.Accounts accounts = olkApp1.Session.Accounts; 
foreach (Outlook.Account account in accounts) 
{ 
    // When the e-mail address matches, send the mail. 
    if (account.SmtpAddress == "[email protected]") 
    { 
      olkMail1.SendUsingAccount = account; 
      ((Outlook._MailItem)olkMail1).Send(); 
      break; 
    } 
} 
+1

이 부분을 사용하여 주셔서 감사합니다. 그걸 찾기 위해 영원히 나를 괴롭혔다. 나는 개발자들이 그들이 어떻게 사용해야 하는지를 일반적으로 어떻게 알고 있는지 잘 모르겠다. – Eric

+0

@Eric IDisposable을 구현하는 모든 클래스에 {} 블록을 사용하여 코딩 할 수 있습니다. 사용 블록이 끝나면 정의 된 변수가 자동으로 삭제됩니다. – j2associates

관련 문제