C#으로 웹 도메인에서 이메일을 읽고 OpenPop.net 라이브러리를 사용하고 있습니다.pop3 이메일을 읽는 중 왜 이메일을 읽지 않습니까?
이메일을 읽고 있지만 새로운 이메일 만 수신합니다. 나는 그것이 다르게 표시 할 CSS를 사용하여 읽고 읽지 않은 것을 가져와야하는 hotmail과 같이 만들고 싶습니다. 제가 어떻게 할 수 있는지 가르쳐주세요.
감사
C#으로 웹 도메인에서 이메일을 읽고 OpenPop.net 라이브러리를 사용하고 있습니다.pop3 이메일을 읽는 중 왜 이메일을 읽지 않습니까?
이메일을 읽고 있지만 새로운 이메일 만 수신합니다. 나는 그것이 다르게 표시 할 CSS를 사용하여 읽고 읽지 않은 것을 가져와야하는 hotmail과 같이 만들고 싶습니다. 제가 어떻게 할 수 있는지 가르쳐주세요.
감사
당신이 할 수있는 것은 당신이 SMTP 서버에서 그들을 가져 그래서 다음 번에 당신이 당신의 응용 프로그램을 여전히 모든 이메일을 읽을 수를 열고 데이터베이스에 모든 이메일을 쓰기입니다. 보통
클라이언트를 수신하면 서버가 메일을 삭제 메일
POP3는 IMAP와 같은 스토리지 시스템이 아닙니다.
POP3에서 메일을 받으면 대개 서버에서 보낸 이메일을 영구히 삭제합니다 (영원히). 그것이 작동하는 방법입니다.
아마도 OpenPOP에는 검색 후 서버의 전자 메일을 삭제하지 못하게하는 옵션이 있습니다.
감사합니다. 레피, 그게 뭐야? 나는 다음 번에도 수련을 위해 이메일을 보관하고 싶다. 감사합니다 – user576510
불행히도 OpenPOP을 사용하지 않았습니다. 죄송합니다. – leppie
pop3 프로토콜은 메시지를 검색 한 후에 메시지를 삭제하지 않습니다. 대부분의 클라이언트는 메시지가 다운로드되면 서버에서 메시지를 삭제합니다.(pop3 DELE 명령이 사용됩니다) – Onots
편집 : 난 당신이 자신의 POP3를 사용하여 Gmail의 메일을 검색하려는 같은데요
. Gmail에는 이상한 비표준 POP3 동작이 있습니다. Gmail 은 검색된 메시지를으로 숨기고 POP3 DELE 명령을 무시합니다. 이 동작에 대한 자세한 내용은 this related question을 참조하십시오. 팝 표준 행동이기 때문에
/// <summary>
/// Example showing:
/// - how to fetch all messages from a POP3 server
/// </summary>
/// <param name="hostname">Hostname of the server. For example: pop3.live.com</param>
/// <param name="port">Host port to connect to. Normally: 110 for plain POP3, 995 for SSL POP3</param>
/// <param name="useSsl">Whether or not to use SSL to connect to server</param>
/// <param name="username">Username of the user on the server</param>
/// <param name="password">Password of the user on the server</param>
/// <returns>All Messages on the POP3 server</returns>
public static List<Message> FetchAllMessages(string hostname, int port, bool useSsl, string username, string password)
{
// The client disconnects from the server when being disposed
using(Pop3Client client = new Pop3Client())
{
// Connect to the server
client.Connect(hostname, port, useSsl);
// Authenticate ourselves towards the server
client.Authenticate(username, password);
// Get the number of messages in the inbox
int messageCount = client.GetMessageCount();
// We want to download all messages
List<Message> allMessages = new List<Message>(messageCount);
// Messages are numbered in the interval: [1, messageCount]
// Ergo: message numbers are 1-based.
for(int i = 1; i <= messageCount; i++)
{
allMessages.Add(client.GetMessage(i));
}
// Now return the fetched messages
return allMessages;
}
}
:
Openpop 예
하나는 모든 메시지를 검색하는 방법을 보여줍니다 IMAP 표준 동작은 다음과 같습니다.
당신의 POP 라이브러리 주어진 당신은 항상 그 동작을 변경할 수 있습니다
메시지를 검색 한 후 메시지를 삭제하는 것은 표준 클라이언트 동작입니다. 그러나 클라이언트는 메시지를 가져 오기 위해 RETR (id)을 사용하고 메시지를 삭제하려면 DELE (id)를 사용합니다. 검색된 메시지를 삭제하는 것은 어떤 식 으로든 시행되지 않습니까, 아니면 제가 실수 한 것입니까? – Onots
이 답변에 동의하지 않습니다. 이메일 서버는 클라이언트가 수신 한 이메일을 삭제할 수 있지만 선택 사항입니다. POP3 클라이언트가 이것을 비활성화/활성화 할 수있는 방법은 없습니다.이 옵션을 켜거나 끌 수있는 옵션은 없습니다. 해제 할 수있는 옵션은 RETR 명령 다음에 DELE 명령을 보내는 것입니다. 즉, 클라이언트가 서버에서 가져온 전자 메일을 삭제하는 것을 중지합니다. 이것은 실제로 동일하지 않습니다! – foens