Skip to content
조회 수 1695 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

H열의 예정일 값이 현재일에서 10일을 더한 값에 속한다면 지메일로 메일을 보내는 스크립트

 

파이썬과 Google API를 사용하여 지메일로 메일을 보내는 스크립트를 만들 수 있습니다. 아래는 스크립트입니다.

 


import datetime

import os.path

import pickle

from google.auth.transport.requests import Request

from google_auth_oauthlib.flow import InstalledAppFlow

from googleapiclient.errors import HttpError

from googleapiclient.discovery import build

from google.oauth2.credentials import Credentials

 

# 구글 클라우드 플랫폼에서 받은 클라이언트 ID와 시크릿 ID를 입력하세요.

CLIENT_ID = 'YOUR_CLIENT_ID'

CLIENT_SECRET = 'YOUR_CLIENT_SECRET'

 

# 필요한 스코프 설정(이메일 보내기)

SCOPES = ['https://www.googleapis.com/auth/gmail.send']

 

# 사용자 인증을 위한 크리덴셜 가져오기(없다면 인증 창을 띄움)

creds = None

if os.path.exists('token.pickle'):

    with open('token.pickle', 'rb') as token:

        creds = pickle.load(token)

if not creds or not creds.valid:

    if creds and creds.expired and creds.refresh_token:

        creds.refresh(Request())

    else:

        flow = InstalledAppFlow.from_client_secrets_file(

            'credentials.json', SCOPES)

        creds = flow.run_local_server(port=0)

    with open('token.pickle', 'wb') as token:

        pickle.dump(creds, token)

 

# Gmail API 클라이언트 인스턴스 만들기

service = build('gmail', 'v1', credentials=creds)

 

# 예정일을 현재일에서 10일 이후로 설정합니다.

due_date = datetime.datetime.now() + datetime.timedelta(days=10)

 

# H열의 값을 가져오기 위해 구글 시트 API를 사용합니다.

sheet_service = build('sheets', 'v4', credentials=creds)

sheet_id = 'YOUR_SHEET_ID'

range_name = 'Sheet1!H2:H'

result = sheet_service.spreadsheets().values().get(spreadsheetId=sheet_id, range=range_name).execute()

values = result.get('values', [])

if not values:

    print('No data found.')

else:

    for row in values:

        if row:

            if datetime.datetime.strptime(row[0], '%m/%d/%Y') == due_date.date():

                # H열의 예정일 값이 현재일에서 10일 이후로 설정된 경우 이메일 보내기

                message = create_message('YOUR_EMAIL_ADDRESS', 'TO_EMAIL_ADDRESS', 'Subject', 'Message Text')

                send_message(service, 'me', message)

                print('Email sent.')

            else:

                print('No email to send.')

 

def create_message(sender, to, subject, message_text):

  """Create a message for an email.

 

  Args:

    sender: Email address of the sender.

    to: Email address of the recipient.

    subject: The subject of the email message.

    message_text: The text of the email message.

 

  Returns:

    An object containing a base64url encoded email object.

  """

  message = MIMEText(message_text)

  message['to'] = to

  message['subject'] = subject

  message['from'] = sender

  return {'raw': base64.urlsafe_b64encode(message.as_bytes()).decode()}

 

def send_message

 

 

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
917 컴퓨터잡담 호스트 / 서버운영자가 가볼만한 사이트 2011.06.17 5423
916 컴퓨터잡담 현재 쿠키,세션 값 전부 보기 2009.06.30 32614
915 Excel 현재 Excel 파일 이름을 셀에 삽입 2 2012.09.17 24618
914 컴퓨터잡담 해외속도테스트 사이트 speedtest.net 2 2012.01.08 5843
913 Visual C++ 함수와변수 14 2011.01.25 17777
912 파이썬 한우경매낙찰 유튜브 영상의 이미지에서 특정 문자 가져와서 저장하기 2023.09.14 98257
911 컴퓨터잡담 한글프로그램 메뉴-모양-세로쓰기 2009.09.21 15757
910 컴퓨터잡담 한글입력이 안될때(how to hangul ...) file 2021.01.08 2840
909 컴퓨터잡담 한글입력이 안될때 의심해봐야 할 파일 imm32.dll 2011.12.14 5999
908 컴퓨터잡담 한글(hwp) msvcr71.dll 오류 해결방법 1 1 file 2013.01.22 6702
907 컴퓨터잡담 한글 HEX 코드표 1 5 2010.03.17 29580
906 Excel 한 셀에 있는 특정 문자의 갯수 구하기 3 2012.06.19 11266
905 컴퓨터잡담 하드 디스크 드라이브(HDD) 숨기기 3 file 2012.03.14 7335
904 컴퓨터잡담 하드 공유폴더 해제하기 1 2012.03.19 8183
903 컴퓨터잡담 핑테스트(PINGINFOVIEW)와 TCPVIEW file 2017.09.21 2326
902 컴퓨터잡담 핑테스트 프로그램 file 2015.09.01 1061
901 컴퓨터잡담 프린터 내용 파일로 저장하기 doPDF 2012.10.17 4727
900 컴퓨터잡담 프록시 서버 만들기 4 2011.03.16 14979
899 컴퓨터잡담 프로세스 숨기고 복구하기 2010.01.21 7199
898 프로세스 프로세스 2 3 2011.02.07 312177
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소