내가 인사이트를 얻는법, Discord와 메일 연동하기 with make, zapier
🤭

내가 인사이트를 얻는법, Discord와 메일 연동하기 with make, zapier

작성일
2024년 10월 22일
태그
카테고리
기타정리
Last edited time
Last updated November 8, 2024
날짜
메일보다 디스코드에 접속하는 시간이 더 많아, 메일 구독 내용을 디스코드에서 바로 볼 수 있으면 좋겠다는 생각이 들었습니다. GeekNews처럼 RSS 피드를 지원하는 서비스는 디스코드 웹훅을 사용해 쉽게 추가할 수 있으며, 실제로 아래와 같은 형태로 내용을 받아볼 수 있습니다.
(discord 웹훅을 이용하면 쉽게 추가가능하다)
notion image
 
하지만, 메일 구독만 지원하는 서비스들도 많습니다.
이러한 구독 내용을 디스코드로 옮기기 위해 직접 서버를 구축할 수도 있지만,
이미 만들어진 자동화 서비스를 활용하는 방법이 더 간편하기에 이를 이용해보자
사용할 서비스는 Zapier와 maker이다,
 
💡
이전에 Zapier를 사용해 자동화를 설정했으나, Zapier는 디스코드의 2000자 제한을 초과할 경우 긴 아티클은 전송하지 못하는 문제가 있었습니다. 이를 해결하기 위해 후술할 Make를 활용하면 해결가능합니다
 

zapier로 메일과 디스코드 연동하기

 
위 링크로 접속후 계정을 만들어준 뒤
notion image
create로 생성
 
notion image
이후 모듈 선택후
이메일을 선택하고 트리거로는 메일이 올 경우를 선택
 
 
notion image
 
다음을 누르면 위처럼 이메일을 제공해주는데
복사해서 원하는 구독 서비스에 넣으면 된다.
메일을 생성했으니 디스코드도 추가해주자
notion image
다음에는 디스코드도 추가해준 후
notion image
 
계정을 추가해주고 해당 디스코드 방에 초대 나는 이미 추가해서 위처럼 표시된다.
 
notion image
그다음 메세지를 받을 채널을 선택해주면된다.
제목이나 보낸사람 메일 본문은 은 위의 + 버튼에서 선택가능
messageText는 실제 discord에 전송할 데이터 포멧이다
--- **📧 새 이메일 도착!** **🔹 보낸 사람:** `{{258965409__from}}` ### **✉️ 제목:** `{{258965409__subject}}` **📝 내용:** > ---
 

단점

zapier의 문제는 아닌데 discord Api 서비스는 한번에 2000자밖에 전송하지 못한다.. zaiper는 코드를 사용해서 문자열을 자를 수 있는 기능을 지원하지만
모듈을 3개 이상 추가하면 유료로 전환되는 문제가 있다. (사실 문제랄것은 아니다. 서비스를 공짜로 이용하려는 심보가 문제가아닐까..)
 
하지만 경쟁서비스인 make는 이를 무료로 지원한다.
또한 zapier는 제공해준 메일을 사용해야해서 메일이 귀속되었던점도 해결해볼까한다.
(물론 zapier도 메일을 귀속시키지 않고 서비스 이용이 가능하다.)
 

make로 구글메일과 discord 연동하기.

 
2000자 문제를 해결하기 위해 문자열 스플리팅을 해주자
notion image
개요는 아래와 같다.
구글 메일 → 이터레이터로 문자열 나누고 배열에 저장 → discord모듈로 메세지 보내기. → 에러스킵
 
 
 
준비물: Make 계정, 깡통 구글계정( 구독용으로만 쓸것이다, 구글은 회원가입을 쉽게 할 수 있음 )
 
회원가입후 시나리오에서 새 모듈을 구글로 생성해주자.
notion image
 
add 선택후 가입한 gmail 사용, gmail api설정을 해줘야하는데 아래 링크에 상세히 나와있다,
 
구글 클라우드 콘솔 에 접속한후 새로운 프로젝트 생성 → gamil api검색해서 위 링크에 따라서 생성해주자
 
notion image
위에서 생성한 client Id와 Client Secret을 넣어주면 연동이 완료된다.
 
이후 문자열을 자르는것은
Iteratior를 이용할건데
아래의 코드를 iteratior에 넣어주자
{{add(emptyarray; " :e_mail: 새 이메일 도착! :small_blue_diamond: 보낸 사람: " + 1.from.name + " <" + 1.from.address + "> :envelope: 제목: " + 1.subject; substring(1.text; 0; min(1900; length(1.text))); if(length(1.text) > 1900; substring(1.text; 1900; min(3800; length(1.text))); ""); if(length(1.text) > 3800; substring(1.text; 3800; min(5700; length(1.text))); ""); if(length(1.text) > 5700; substring(1.text; 5700; min(7600; length(1.text))); ""); if(length(1.text) > 7600; substring(1.text; 7600; min(9500; length(1.text))); ""); if(length(1.text) > 9500; substring(1.text; 9500; min(11400; length(1.text))); ""))}}
notion image
배열에 0번 인덱스로 제목과 보낸사람을 추가하고 나머지는 문자열을 자르는 수식이다.
11400자까지 자르도록 해놨으며 그냥 다 잘라서 보내버리기때문에 굉장히 무식한 방법이라 볼 수 있다.
에러가 나긴하는데 어차피 빈 문자열은 보내지 않고 에러 핸들링을 알아서 해주기때문에 무식하게 만들기로했다.
 
notion image
이후 message에 value를 넣어주면
문자열을 잘라서 차례로 보내주기때문에
2000자 제한에서 벗어날 수 있다!
 
 
notion image
테스트로 메일을 나한테 보내보니
긴 문자열일 경우에도 몇 번에 걸쳐 잘 나온다.
 
 
실제 만들어보니 서버를 굳이 구동해도 잘 작동하는게 큰 장점이고,
이외에도 다양한 자동화 모듈이 있어서 실제 서비스를 구축할때 이미 있는 모듈을 참고해 인사이트를 었을 수 있을 것 같았다. 물론 개인적용도로 사용하기에 너무나 좋은툴인것같다 이 퀄리티에 무료라니… 유료로 전환될것같기에 그전에 최대한 굴려야겠다. maker… 이름만 들어보고 실제로 사용해본건 처음이었는데,
이런 툴이 필요하면 보통 파이썬 스크립트로 끄적였는데, 간단하게 웹에서 GUI로 자동화를 구축할 수 있다니 너무 편리했다.
 

 
나는 아래처럼 따로 채널을 하나 더 파서 유익하거나 도움이 될만한 링크를 정리한다. 노션에 정리하기에는 가볍고, 위에서 받은 메일에서 얻은 정보를 빠르게 저장할 용도이다.
notion image
notion image
notion image
notion image
 
 
 

 

FrontEnd 아티클 채널

 
추천하는 아티클 구독 서비스들입니다!
 
요즘IT: 위시켓에서 운영하는 IT 매거진으로, 개발, 디자인, 기획 등 다양한 분야의 최신 콘텐츠를 제공합니다
Korean FE article: 한정(한정) 님이 운영하는 Substack 뉴스레터로, 영어로 작성된 프론트엔드 아티클을 번역하여 공유합니다.
FE News: 네이버 프론트엔드 엔지니어들이 엄선한 기술 소식을 큐레이션하여 월간으로 발행하는 뉴스레터입니다.
 
Nomad Coders: 노마드 코더에서 운영하는 뉴스레터로, 최신 개발 뉴스, IT 이슈, AI 소식 등 다양한 주제를 매주 전해줍니다.
 
Node Weekly: Node.js 관련 최신 뉴스와 아티클을 주간으로 제공하는 영어 뉴스레터입니다.
당근메일: 당근마켓에서 제공하는 뉴스레터로, 다양한 IT 소식과 인사이트를 전달합니다.

 
Geek News와 JS Weekly는 RSS + webHook 사용중
GeekNews: 개발, 기술, 스타트업 관련 뉴스를 커뮤니티 기반으로 공유하는 플랫폼입니다.
JavaScript Weekly: 자바스크립트 관련 최신 아티클과 뉴스를 주간으로 제공하는 영어 뉴스레터입니다.