첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

TestProject.zip
0.00MB

▶ Program.cs

using System;
using System.Collections.Generic;

using OpenPop.Mime;
using OpenPop.Pop3;

namespace TestProject
{
    /// <summary>
    /// 프로그램
    /// </summary>
    class Program
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Private

        #region 프로그램 시작하기 - Main()

        /// <summary>
        /// 프로그램 시작하기
        /// </summary>
        private static void Main()
        {
            string hostName = "pop.naver.com";
            int    port     = 995;
            string userName = "testid";
            string password = "1234";

            using(Pop3Client client = new Pop3Client())
            {
                client.Connect(hostName, port, true);
 
                client.Authenticate(userName, password, AuthenticationMethod.UsernameAndPassword);
 
                int messageCount = client.GetMessageCount();
 
                for(int i = 1; i <= messageCount; i++)
                {
                    Message message = client.GetMessage(i);

                    string fromAddress = message.Headers.From.Address;
                    string subject     = message.Headers.Subject;

                    string messageBody;
 
                    MessagePart plainTextVersionMessagePart = message.FindFirstPlainTextVersion();
 
                    if(plainTextVersionMessagePart == null)
                    {
                        MessagePart htmlVersionMessagePart = message.FindFirstHtmlVersion();

                        messageBody = htmlVersionMessagePart.GetBodyAsText();
                    }
                    else
                    {
                        messageBody = plainTextVersionMessagePart.GetBodyAsText();
                    }
 
                    List<MessagePart> attachmentMessagePartList = message.FindAllAttachments();
 
                    Console.WriteLine($"메시지 ID    : {message.Headers.MessageId      }");
                    Console.WriteLine($"발송자 주소  : {fromAddress                    }");
                    Console.WriteLine($"제목         : {subject                        }");
                  //Console.WriteLine($"본문         : {messageBody                    }");
                    Console.WriteLine($"첨부 파일 수 : {attachmentMessagePartList.Count}");
 
                  //foreach(MessagePart attachmentMessagePart in attachmentMessagePartList)
                  //{
                  //    Console.WriteLine("첨부 파일 : " + attachmentMessagePart.FileName);
                  //
                  //    FileInfo targetFileInfo = new FileInfo($"D:\\temp\\{attachmentMessagePart.FileName}");
                  //
                  //    attachmentMessagePart.Save(targetFileInfo);
                  //}
 
                    Console.WriteLine();
                }
 
                Console.WriteLine("메일 건수 : " + messageCount);
            } 

        }

        #endregion
    }
}
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요