메일 보내기

mail API는 이메일 메시지를 보낼 수 있는 두 가지 방법인 mail.send_mail() 함수와 EmailMessage 클래스를 제공합니다.

전송은 비동기로 수행됩니다. mail.send_mail() 함수 및 EmailMessage.send() 메서드는 메일 서비스에 메시지 데이터를 전송한 후 반환합니다. 메일 서비스는 메시지를 큐에 넣은 후 전송을 시도하고, 대상 메일 서버를 사용할 수 없으면 작업을 재시도합니다. 오류 및 반송 메시지는 이메일 메시지의 보내는 사람 주소로 전송됩니다.

시작하기 전에

보내는 사람의 이메일을 승인된 보내는 사람으로 등록해야 합니다. 자세한 내용은 이메일을 보낼 수 있는 사람을 참조하세요.

mail.send_mail()를 사용하여 메일 보내기

mail.send_mail() 함수를 사용하여 메일을 보내려면 보내는 사람, 받는 사람, 제목, 메시지 본문 등 이메일 메시지의 필드를 매개변수로 사용합니다. 예를 들면 다음과 같습니다.

    mail.send_mail(sender=sender_address,
                   to="Albert Johnson <Albert.Johnson@example.com>",
                   subject="Your account has been approved",
                   body="""Dear Albert:

Your example.com account has been approved.  You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.

Please let us know if you have any questions.

The example.com Team
""")

EmailMessage를 사용하여 메일 보내기

EmailMessage 클래스가 포함된 객체를 사용하여 메일을 전송하려면 이메일 메시지 필드를 EmailMessage 생성자로 전달하고 인스턴스 속성을 사용하여 메시지를 업데이트합니다.

EmailMessage.send() 메서드는 인스턴스 속성으로 표시된 이메일 메시지를 전송합니다. 애플리케이션은 속성을 수정하고 send() 메서드를 다시 호출하여 EmailMessage 인스턴스를 재사용할 수 있습니다.

    message = mail.EmailMessage(
        sender=sender_address,
        subject="Your account has been approved")

    message.to = "Albert Johnson <Albert.Johnson@example.com>"
    message.body = """Dear Albert:

Your example.com account has been approved.  You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.

Please let us know if you have any questions.

The example.com Team
"""
    message.send()

다음 예는 이메일 주소 확인을 위한 메시지 전송을 보여줍니다.

class UserSignupHandler(webapp2.RequestHandler):
    """Serves the email address sign up form."""

    def post(self):
        user_address = self.request.get('email_address')

        if not mail.is_email_valid(user_address):
            self.get()  # Show the form again.
        else:
            confirmation_url = create_new_user_confirmation(user_address)
            sender_address = (
                'Example.com Support <{}@appspot.gserviceaccount.com>'.format(
                    app_identity.get_application_id()))
            subject = 'Confirm your registration'
            body = """Thank you for creating an account!
Please confirm your email address by clicking on the link below:

{}
""".format(confirmation_url)
            mail.send_mail(sender_address, user_address, subject, body)

대량 메일 보내기

대량 이메일 전송에 대한 고려 사항은 대량 메일 지침을 참조하세요.