sendgrid API를 통해 메일을 발송하기 위해서는 sendgrid.helpers.mail모듈과 sendgrid모듈이 필요하다.
메일컨텐츠 설정
이메일 형식(받는사람/보내는사람)
sendgrid에서 사용될 이메일을 지정하기 위해서는 Email()함수를 사용해 지정해 주어야 한다. ex) Email(“test@gamil.com”)
제목
제목은 str형태로 쓰도록 한다.
내용
sendgrid에서 사용할 내용은 Content()함수를 이용하여 설정하고, 첫번째 인자로는 해당 메일의 내용이 어떤 형태인지 지정해 주어야 한다. 일반적으로는 “text/plain”을 가장 많이 사용한다. 그리고 두번째 인자로 해당 메일의 내용을 입력한다.
ex ) Content(“text/plain”,”내용”)
마지막으로 이를 묶어서 보낼 객체로 만드는 Mail(보내는사람, 제목, 받는사람, 내용) 함수가 필요하다.
첨부파일 추가
enctype설정
첨부파일을 받기 위해서는 당연히 html form태그의 enctype을 multipart/form-data"로 설정해 주어야 파일을 백단으로 옮겨받을 수 있다.
첨부할 형태로 파일 디코드
첨부할 파일객체.read()를 통해 읽어온 데이터 data라는 변수에 저장했을 때, base64.b64encode(data).decode()를 이용하여 파일을 디코드 시킨다.
메일객체로 첨부파일 붙이기
메일객체에 첨부파일을 더하기 위해서 Attachment()를 이용한 객체생성이 필요하다.
위 예제와 같이 설정해 준 후에 Mail()을 통해 생성된 객체의 메서드인 .add_attachment(attachment객체)를 통해 해당 메일에 첨부파일을 붙여준다.
메일발송
설정이 모두 끝난 후 실질적으로 메일을 발송하기 위해 sendgrid client객체가 필요한데, 이를 생성하기 위해서는 sendgrid에서 부여받은 api key가 필요하다.
객체의 생성은 sendgride.SendGridAPIClient(apikey='부여받은 API키')를 이용하여 생성하고,
메일을 발송하기 위해 sendgridclient객체.client.mail.send.post(request_body=메일객체.get())을 호출하면 메일이 발송된다.