김묭의 자기개발

최종프로젝트 - 9일차 본문

내일배움캠프/최종 프로젝트

최종프로젝트 - 9일차

포령 2023. 6. 19. 09:27

<오늘 구현 상황>

1. email 보내기

class EmailView(APIView):
    def post(self, request, note_id):

        note = get_object_or_404(Note, id=note_id)
        serializer = DetailNoteSerializer(note)
        plan_set = serializer.data['plan_set']
        note_name = serializer.data['name']

        filtered_data = []  # 필터링된 데이터를 저장할 리스트

        for item in plan_set:
            filtered_item = {
                'title': item['title'],
                'start': item['start'],
                'location': item['location']
            }
            filtered_data.append(filtered_item)

        print(filtered_data)

        table_headers = ['장소명', '날짜', '위치']
        table_data = [[item['title'], item['start'], item['location']] for item in filtered_data]

        table = tabulate.tabulate(table_data, headers=table_headers, tablefmt='pretty')

        subject = f'{note_name}의 일정 안내'
        message = f'아래는 일정에 대한 정보입니다:\n\n{table}'

        recipient_list = request.data['members']
        print(recipient_list)
        send_mail(
            subject,
            message,
            settings.EMAIL_HOST_USER,  # Gmail 계정 이메일 주소
            recipient_list,
            fail_silently=False,
        )

        # 이메일 전송 후 리다이렉트 또는 응답 등을 처리
        return Response('이메일이 전송되었습니다.', status=status.HTTP_200_OK)
  • subject: 제목
  • message : 여행 전체 일정
  • settings.EMAIL_HOST_USER : 내 이메일
  • recipient_list : 발송할 이메일 리스트
  • 개발환경에서는 ssh관련 문제가 발생해 배포서버에서 진행하니 성공!

 

 

'내일배움캠프 > 최종 프로젝트' 카테고리의 다른 글

🔫 트러블슈팅 💥  (0) 2023.07.03
최종프로젝트 - 중간점검  (0) 2023.06.26
최종프로젝트 - 8일차  (0) 2023.06.16
최종프로젝트 - 5일차  (0) 2023.06.12
최종 프로젝트 - 4일차  (0) 2023.06.10