Gmail 생성기는 이메일 구독을 관리하는 꽤 일반적인 방법입니다. 본질적으로 임시 이메일 주소 제공자의 유사 형태이지만 훨씬 더 유연하고 신뢰하며 안전합니다.
생성기의 본질은 추가 Gmail 주소를 만드는 것입니다. 이러한 추가 주소를 다양한 웹사이트에 등록할 때 사용할 수 있습니다. 해당 웹사이트는 제공한 주소로 이메일을 보낼 가능성이 높습니다. 주소가 추가이므로 모든 메일이 메인 주소로 전달됩니다. 하지만 동시에 애플리케이션이 생성하거나 수동으로 만든 추가 주소가 편지의 수신자로 표시됩니다.
수신자 주소로 이메일을 검색하면 이메일을 필터링하고 자동으로 작업을 수행할 수 있습니다. 일시적이든 영구적이든 가능합니다. 또한 귀하의 동의 없이 주소를 제3자와 공유하는 웹사이트를 포착할 수도 있습니다.
예를 들어, 추가 주소 username+for.spam.sender@gmail.com 을 생성했다고 가정해 보겠습니다. 이를 spam-sender.com 웹사이트에 전달했습니다. 얼마 후 다른 웹사이트(예: other-sender.com)로부터 이메일을 받을 수 있는데, 수신자는 username+for.spam.sender@gmail.com 이 됩니다. 다른 상황에서는 other-sender.com이 왜 프로모션 이메일을 보내는지 알 수 없지만, 대체 주소를 사용했으므로 spam-sender.com이 귀하의 주소를 제3자와 공유했음을 쉽게 알 수 있습니다. 따라서 이러한 사이트의 메일링 리스트에서 구독을 취소해도 의미가 없습니다. 추가 주소는 이미 원치 않는 이메일을 발송하기 위한 공개 데이터베이스에 포함되어 있을 가능성이 높습니다. 이 추가 주소로 오는 모든 메일을 차단하는 것이 훨씬 쉽습니다. 이러한 메일을 자동으로 스팸 폴더로 이동하도록 설정하면 더욱 좋습니다. 이렇게 하면 Gmail이 해당 사이트들이 스팸을 보내고 있음을 인식하게 되어 이들 사이트에 큰 어려움을 주게 됩니다.
그럼 Aspose.Email for .NET을 사용해 이러한 생성기를 구현하는 방법을 알아보겠습니다.
임시 Gmail을 생성하고 활용하기
추가 Gmail 주소를 생성하려면 실제로 Aspose.Email이 필요하지 않으며 Gmail 서비스와 상호 작용할 필요도 없습니다. 특정 규칙에 맞는 수동 또는 무작위로 만든 추가 주소라면 모두 작동합니다.
그렇다면 이러한 규칙은 무엇일까요?
점(.)은 중요하지 않습니다. 즉, 주소의 ‘@’ 기호 앞에서 점을 제거하거나 문자 사이에 새 점을 추가할 수 있습니다.
‘@’ 문자 앞에 ‘+‘를 추가하고 그 뒤에 원하는 문자와 숫자를 넣을 수 있습니다. “username@gmail.com” 주소의 예시:
이 모든 주소는 이미 웹사이트에 등록할 때 사용할 수 있습니다. 하지만 단독으로는 별 의미가 없습니다. 왜냐하면 해당 주소로 온 모든 메시지가 메인 사서함으로 전달되기 때문입니다. 따라서 이러한 주소를 활용하려면 우리의 안내를 따르는 것이 좋습니다.
간단한 임시 Gmail 생성기
간단한 무작위 서브 주소 생성기를 만들겠습니다. 이를 위해 ‘+‘와 ‘@’ 사이에 무작위 문자열을 삽입합니다. 먼저 특정 길이와 특정 문자 집합으로 이루어진 무작위 문자열을 생성해야 합니다:
const string pattern = "abcdefghijklmnopqrstuvwxyz0123456789";
var patternLength = pattern.Length;
const int suffixLength = 10;
var random = new Random();
var generatedSuffix = Enumerable.Range(0, suffixLength)
.Aggregate(
new StringBuilder(),
(builder, _) => builder.Append(pattern[random.Next(patternLength)]))
.ToString();
이제 이메일 주소를 가져와서 생성된 무작위 문자열을 추가해야 합니다. 이를 위해 Aspose.Email for .NET 라이브러리의 <a href="https://reference.aspose.com/email/net/aspose.email/mailaddress/" rel="nofollow noopener" target="_blank">MailAdress 클래스를 사용합니다:
var originalAddress = new MailAddress("some.address@gmail.com");
var generatedAddress = new MailAddress(
$"{originalAddress.User}+{generatedSuffix}@{originalAddress.Host}");
Console.WriteLine(generatedAddress);
완료! 받은 주소는 이미 웹사이트에 등록할 때 사용할 수 있습니다. 웹사이트가 곧 이 주소로 메시지를 보내기 시작할 것입니다. 이 메시지들로 무엇을 할 수 있는지 살펴보겠습니다.
생성된 Gmail에 수신된 메시지를 다루기 위해 IMAP 클라이언트를 사용하세요
먼저, 추가 주소로 수신된 메시지를 다루려면 Gmail에 연결해야 합니다. IMAP이 적합합니다. 이 프로토콜로 연결하려면 계정에서 해당 프로토콜을 허용하도록 설정해야 합니다. 또한 전용 앱 비밀번호를 사용해 IMAP 연결을 단순화할 수 있습니다. 이렇게 하면 애플리케이션에 OAuth 인증을 구현하고 싶지 않을 경우 OAuth 인증을 수행할 필요가 없습니다. Google 계정 설정에서 보안 섹션을 열고 앱 비밀번호를 추가하세요. 생성된 비밀번호를 안전한 저장소에 보관하고 잃어버리지 않도록 주의하세요. 이 비밀번호는 메일에 대한 전체 접근 권한을 부여합니다!
그럼 <a rel="nofollow noopener" target="_blank" href="https://reference.aspose.com/email/net/aspose.email.clients.imap/imapclient/">ImapClient 클래스를 사용하고 IMAP 프로토콜로 Gmail 계정에 연결해 보겠습니다:
var imapClient = new ImapClient("imap.gmail.com", 993, originalAddress.User, "password",
SecurityOptions.SSLAuto);
완료, 이제 예를 들어 생성된 Gmail 주소에 수신된 모든 메시지를 가져올 수 있습니다:
await imapClient.SelectFolderAsync("INBOX");
var queryBuilder = new ImapQueryBuilder();
queryBuilder.To.Contains(generatedAddress.Address);
var list = await imapClient.ListMessagesAsync(queryBuilder.GetQuery());
그리고 이러한 모든 편지를 확실히 받을 수 있습니다. 어떤 사이트에서 왔는지는 중요하지 않습니다. 생성된 이메일 주소를 제공한 사이트에서 온 경우도 있고, 다른 사이트에서 온 경우도 있습니다. 어떤 주소든 상관없습니다. 우리는 발신자가 아니라 수신자를 기준으로 이메일을 필터링합니다. 매우 편리합니다.
임시 Gmail에 수신된 메시지를 표시, 삭제, 이동
편지를 리스트로 받으면 즉시 다양한 작업을 수행할 수 있습니다. 하나씩 찾을 필요 없이 몇 번의 명령만으로 모든 편지를 읽음으로 표시하거나 다른 폴더로 이동하거나 삭제할 수 있습니다. 다만 리스트가 비어 있지 않은지 미리 확인하세요. 이미 모든 것을 삭제했을 수도 있습니다.
if (list.Count > 0)
{
//Mark as read
await imapClient.AddMessageFlagsAsync(list, ImapMessageFlags.IsRead);
//Move
await imapClient.MoveMessagesAsync(list, "DestinationFolder");
//Remove
await imapClient.DeleteMessagesAsync(list, commitNow: true);
}
완료, 받은함에서 스팸이 모두 삭제되었습니다.
임시 Gmail 주소 구독
위 코드를 수동으로 호출해 이메일을 지속적으로 삭제하거나 표시하고 싶지 않다면 어떨까요? 수신 즉시 이메일을 삭제하고 싶다면 어떻게 할까요? 예를 들어 새 메시지를 구독하고, 이메일 주소에 도착하는 즉시 메시지를 삭제하는 함수를 작성할 수 있습니다.
await imapClient.StartMonitoringAsync((_, eventArgs) =>
{
var generated = eventArgs.NewMessages
.Where(message => message.To
.Any(address => address.Equals(generatedAddress)))
.ToList();
if (generated.Count == 0) return;
imapClient.SelectFolder("INBOX");
//Do something with the received messages. For example, mark them as read:
imapClient.AddMessageFlags(generated, ImapMessageFlags.IsRead);
//or delete them
imapClient.DeleteMessages(generated, commitNow: true);
},
(_, errorEventArgs) => Console.WriteLine(errorEventArgs.Error.Message),
"INBOX");
이 알고리즘은 오류 발생 시 새 메시지 구독이 중단되기 때문에 약간 단순화되었습니다. 알고리즘을 크게 개선할 수 있습니다. 이를 위해 오류 처리를 개선하여 알고리즘을 정교화해야 합니다. 예를 들어 오류 발생 시 모니터링을 재개하도록 설정할 수 있는데, 이를 위해 ImapClient.ResumeMonitoring 함수를 사용할 수 있습니다. 이 함수는 IMAP 서버와의 연결을 재설정하고 새 메시지 모니터링을 재개합니다.
불행히도 이 알고리즘을 사용하려면 프로그램을 지속적으로 실행해야 합니다. 프로그램 실행을 중단하면 새 메일이 자동으로 삭제되지 않게 됩니다. 하지만 이 경우 다른 해결책이 있습니다.
생성된 Gmail 주소로 오는 메시지 수신 중단
Gmail은 수신 메시지를 필터링하기 위한 알고리즘을 제공하며, 이러한 알고리즘은 서비스 측에서 작동하므로 원치 않는 메일이 통과되지 않게 합니다(올바르게 구성한 경우). 현재는 C#을 사용해 원격으로 이러한 필터를 구성하는 기능을 제공하지 못하지만, 가까운 시일 내에 추가할 계획입니다. 업데이트를 지켜봐 주세요!
따라서 생성된 Gmail로 들어오는 메시지를 필터링하려면 먼저 필터용 검색 템플릿을 만들어야 합니다. 템플릿을 얻기 위한 가장 간단한 코드는 다음과 같습니다:
//Generate Gmail search pattern
var searchPattern = $"to:({generatedAddress.Address})";
Console.WriteLine(searchPattern);
여기서 변수는 generatedAddress 이 문서에서 이전에 생성된 Gmail을 포함합니다. 위 코드는 검색 템플릿을 만들고 터미널에 출력합니다. 필터를 만들 때 필요하므로 이 템플릿을 복사하십시오.
이제 필터를 만드는 방법을 단계별로 설명하겠습니다. 시작하려면 Gmail 웹 인터페이스를 열어야 합니다. <a href="https://mail.google.com/mail" rel="nofollow noopener" target="_blank">링크에서 사용할 수 있습니다. 이 인터페이스에서 검색창을 찾으세요:

이 검색창에 이전에 이 안내에서 생성된 템플릿을 삽입해야 합니다. 다음으로 아래 스크린샷에 표시된 “Show search options” 버튼을 클릭해야 합니다:

열리는 검색 옵션 창에서는 추가 데이터를 입력할 필요가 없습니다. 생성된 템플릿이 이미 검색을 구성해 놓았습니다. 그냥 "Create filter" 버튼을 클릭하십시오.

그 결과, 필터 설정 창이 열립니다:

여기에서 생성된 Gmail 주소로 받은 이메일에 대해 필터가 수행할 작업을 선택할 수 있습니다. 자동으로 보관하거나, 읽음으로 표시하거나, 삭제하는 등 다양한 옵션이 있습니다. 일반적으로 가장 좋은 선택은 이메일을 삭제하는 것입니다. 메일함 용량이 제한되어 있기 때문에 불필요한 메일 저장에 공간을 낭비할 필요가 없습니다. 원하는 작업을 선택한 후 “필터 만들기” 버튼을 다시 클릭하세요.
완료! 필터가 완전히 설정되어 더 이상 스팸 메일이 방해되지 않을 것입니다.
임시 Gmail 필터 관리
특정 웹사이트에서 받는 메시지가 원치 않게 될 때가 있습니다. 이런 메시지는 메일함에 잡동사니가 되어 정말 중요한 것들을 찾기 어렵게 만듭니다. 그래서 그 웹사이트의 원치 않는 메시지를 차단하는 필터를 만들게 됩니다. 하지만 그 웹사이트의 메시지가 더 이상 스팸이 아니게 되면 어떻게 해야 할까요? 예를 들어 비밀번호를 복구하고 싶을 때, 웹사이트가 비밀번호 재설정 양식 링크가 포함된 이메일을 보내지만 필터가 즉시 삭제해버려 받을 수 없습니다.
다행히도 이 상황을 해결할 우아한 방법이 있습니다. 필터를 일시적으로 재구성하여 해당 이메일을 삭제하지 않도록 할 수 있습니다. 혹은 필터를 완전히 제거할 수도 있습니다. 어떻게 할 수 있는지 살펴보겠습니다.
먼저 Gmail 웹 인터페이스를 엽니다. 열리는 페이지에서 "Settings" 버튼을 클릭합니다:

열린 창에서 "See all settings" 버튼을 클릭합니다:

Gmail 계정 설정 창이 열립니다. 여기에는 이메일 환경을 세밀하게 조정할 수 있는 여러 탭이 있습니다. 우리는 "Filters and Blocked Addresses" 탭에 관심이 있습니다. 이 탭을 엽니다:

열리는 탭에서 이전에 만든 생성된 Gmail에 대한 필터 목록과 다른 필터가 있을 수도 있음을 볼 수 있습니다:

필터 설명을 보면 차단 해제하려는 주소와 관련된 필터를 쉽게 파악할 수 있습니다. "delete" 버튼을 클릭하면 해당 필터를 영구적으로 비활성화할 수 있습니다. “edit” 버튼을 클릭하면 필터를 재구성할 수 있습니다. 예를 들어, 이메일을 삭제하는 대신 표시하도록 할 수 있습니다. 이렇게 하면 필터를 저장해 두었다가 나중에 쉽게 활성화할 수 있습니다. 필터를 편집하면 해당 웹사이트에서 필요한 이메일을 받을 수 있게 됩니다. 생성된 Gmail을 다시 차단하고 싶을 때는 “edit” 버튼으로 필터를 열어 동작을 재구성하면 됩니다.
이것으로 끝입니다. 이제 생성된 Gmail 주소의 전문가가 되었습니다. 수많은 주소를 만들고 Gmail에 도착하는 이메일 흐름을 능숙하게 관리할 수 있습니다. 추가 주소를 사용하면 동의 없이 데이터를 제3자에게 전달하는 사이트를 추적할 수 있습니다. 스팸 차단을 위해 스팸 방지 시스템을 재학습하거나 구독 해제 버튼을 여러 번 누를 필요 없이 스팸을 차단할 수 있습니다. Aspose.Email .NET을 사용하거나 설정 및 Gmail 인터페이스를 통해 수동으로 스팸 제거를 자동화할 수 있습니다.