다음 코드를 사용하여 DataGridView에서 전자 메일 주소를 읽은 다음 Outlook 전자 메일을 만듭니다. 이것은 새로운 이메일이 topMost로 설정되거나 대화창으로 열리는 것을 제외하고는 완벽하게 작동합니다. 즉, 새 이메일 창이 열리는 동안 Outlook에서 다른 것을 클릭하거나 수행 할 수 없음을 의미합니다. 새로운 이메일을 열어 놓은 상태에서 내받은 편지함에서 다시 검색하거나 찾으려고 할 때 문제가 발생합니다. 또한 이메일을 닫거나 보낼 때까지 내 애플리케이션이 응답하지 않습니다 (잠겨 있습니다).새 전자 메일이 Outlook을 잠그면 전자 메일 창을 최상위로 만듭니다.
새 이메일을 만들고 일반 기능을 허용 할 수있는 방법이 있습니까? Outlook 자체에서 새 전자 메일 단추를 클릭하면 원하는만큼 열어서 검색 할 수 있습니다.
this.TopMost = false
줄은 내 WinForms 응용 프로그램을 숨기고 새 전자 메일 창을 앞에 표시합니다.
try
{
string emailString = resultsGrid[resultsGrid.Columns["Email"].Index, resultsGrid.SelectedCells[resultsGrid.Columns["Email"].Index].RowIndex].Value.ToString();
if(emailString.Contains("mailto:"))
{
emailString = emailString.Replace("mailto:", "");
}
this.TopMost = false;
// Create the Outlook application by using inline initialization.
Outlook.Application oApp = new Outlook.Application();
//Create the new message by using the simplest approach.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.Subject = "";
oMsg.To = emailString;
oMsg.Body = "";
oMsg.Display(true);
oMsg = null;
oApp = null;
}
catch (Exception ex)
{
MessageBox.Show(string.Format("An error occurred: {0}", ex.Message));
}
전자 메일에 몇 가지 내용을 적어서 닫으면 나도 구할 수 있습니다. 이렇게하면 전자 메일을 다시 열면 잠긴 상태로 돌아갑니다. 나는 이것이 이메일이 어떻게 만들어 졌는지와 관련이 있다고 생각하기 시작했다. 그래서 어떤 설정이나 속성이 적용되고 저장되었다.
hm "테스트 (False)"는 전자 메일을 전혀 표시하지 않는다고 판단하지 않았습니다. 감사. – ikathegreat