Google에서는 사용자 이름과 비밀번호만 사용하여 Google 계정에 로그인해야 하는 타사 앱이나 기기의 사용을 더 이상 지원하지 않습니다.
이는 다음을 포함한 다양한 응용 프로그램에서 문제가 됩니다.git send-email
.sendgmail
OAuth2 자격 증명을 사용할 수 있도록 Google에서 작성한 도구입니다.
사용하려면 sendgmail
특정이 필요합니다.Google Cloud의 구성, 구성이 포함된 JSON을 다운로드하고 이름을 로 바꾼 ~/.sendgmail.json
후 한 번 실행합니다.
$ GOPATH/bin/sendgmail [email protected] -setup
1. Ensure that you are logged in as [email protected] in your browser.
2. Open the following link and authorise sendgmail:
https://accounts.google.com/o/oauth2/auth?...
3. Enter the authorisation code:
가 ~/.sendgmail.json
포함되어 있으므로 redirect_uris":["http://localhost"]
클릭한 웹사이트가 localhost로 리디렉션되고(내 컴퓨터에 웹서버가 없음) 인증 코드를 받지 못합니다. 이 작업을 수행하려면 Google Cloud 설정에서 정확히 무엇을 해야 하는지 설명할 수 있나요?
답변1
작업공간 설정설명을 따르세요이 단계.
Gmail API 활성화이 프로젝트에 대해.
OAuth 동의 페이지를 설정합니다.
- 승인된 도메인이 없다는 사실을 극복할 수 있을지 모르겠습니다. 내 것 중 하나를 포함시켰습니다(다른 Google OAuth 워크플로와 함께 사용됨).
- Gmail API ../auth/gmail.send 범위를 허용하는지 확인하세요. 다른 것은 필요하지 않은 것 같습니다.
- 자신을 등록된 테스트 사용자라고 생각하세요.
자격 증명을 만듭니다.
- 유형: OAuth 클라이언트 ID
- 애플리케이션 유형: 데스크톱 애플리케이션(다른 애플리케이션도 작동합니다. 링크된 지침을 따르세요)
sendgmail go 패키지 설치:go install github.com/CyCoreSystems/gmail-oauth/sendgmail@latest
설정 명령을 실행하세요.당신이 포함시킨대로.
지시를 따르다인증하고 작동하지 않는 페이지로 리디렉션합니다(redirect_uri가 localhost이므로).
프롬프트에 입력해야 하는 인증 코드는 작동하지 않는 리디렉션 URL에서 가져올 수 있습니다.
code
다음은 GET 매개변수의 값(즉, 전후의 전체 문자열 ) 이 필요한 URL의 예입니다 .code=
&scope
http://localhost/?state=state&code=foobarauthcode&scope=https://mail.google.com/
인증 코드를 제출한 후 도구가 아무 것도 출력하지 않는 것 같지만 패치 파일을 나 자신에게 보내는 테스트는 성공적이었습니다.
git send-email --smtp-server=$GOPATH/bin/sendgmail [email protected] patch-test.diff