Web2py-이메일 및 SMS
web2py는 사용자에게 이메일과 SMS를 보내는 기능을 포함합니다. 라이브러리를 사용하여 이메일과 SMS를 보냅니다.
이메일 설정
내장 클래스 즉 gluon.tools.Mail클래스는 web2py 프레임 워크에서 이메일을 보내는 데 사용됩니다. 이 클래스로 메일러를 정의 할 수 있습니다.
from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = '[email protected]'
mail.settings.login = 'username:password'
위의 예에서 언급 한 발신자 이메일과 비밀번호는 이메일이 전송 될 때마다 인증됩니다.
사용자가 디버깅 목적으로 실험하거나 사용해야하는 경우 다음 코드를 사용하여 수행 할 수 있습니다.
mail.settings.server = 'logging'
이제 모든 이메일이 전송되지는 않지만 콘솔에 기록됩니다.
이메일 보내기
메일 개체를 사용하여 이메일에 대한 구성 설정을 지정하면 이메일을 많은 사용자에게 보낼 수 있습니다.
완전한 구문 mail.send() 다음과 같습니다-
send(
to, subject = 'Abc',
message = 'None', attachments = [],
cc = [], bcc = [], reply_to = [],
sender = None, encoding = 'utf-8',
raw = True, headers = {}
)
구현 mail.send() 아래에 주어진다.
mail.send(
to = ['[email protected]'], subject = 'hello',
reply_to = '[email protected]',
message = 'Hello ! How are you?'
)
Mail최종 사용자가 메일을 수신 한 메일 링 서버의 응답에 따라 부울 표현식을 반환합니다. 그것은 반환True 사용자에게 이메일 전송에 성공한 경우.
속성, cc 과 bcc 메일을 보낼 유효한 이메일 주소 목록을 포함합니다.
SMS 보내기
SMS 메시지를 전송하기위한 구현은 수신자에게 메시지를 릴레이 할 수있는 타사 서비스가 필요하기 때문에 web2py 프레임 워크에서 이메일을 전송하는 것과 다릅니다. 제 3 자 서비스는 무료 서비스가 아니며 지리적 지역 (국가별로)에 따라 분명히 다릅니다.
web2py는 모듈을 사용하여 다음 프로세스를 통해 SMS를 전송합니다.
from gluon.contrib.sms_utils
import SMSCODES, sms_email
email = sms_email('1 (111) 111-1111','T-Mobile USA (abc)')
mail.send(to = email, subject = 'test', message = 'test')
위의 예에서 SMSCODES 주요 전화 회사의 이름을 이메일 주소 접미사에 매핑하는 web2py에서 관리하는 사전입니다.
전화 회사는 일반적으로 타사 서비스에서 발생하는 이메일을 스팸으로 취급합니다. 더 나은 방법은 전화 회사가 직접 SMS를 중계하는 것입니다. 모든 전화 회사는 저장소에있는 모든 휴대폰 번호에 대해 고유 한 이메일 주소를 포함하고 있으며 SMS를 이메일로 직접 보낼 수 있습니다.
위의 예에서
그만큼 sms_email 함수는 전화 번호 (문자열)를 받아 전화의 이메일 주소를 반환합니다.
스캐 폴딩 앱에는 여러 파일이 포함되어 있습니다. 그중 하나는 models / db.py로 4 개를 가져옵니다.
수업 gluon.tools 메일 라이브러리도 포함하고 다양한 전역 개체를 정의합니다.
스캐 폴딩 애플리케이션은 다음과 같이 auth 개체에 필요한 테이블도 정의합니다. db.auth_user. 기본 스캐 폴딩 애플리케이션은 모듈식이 아니라 파일 수를 최소화하도록 설계되었습니다. 특히 모델 파일은db.py에는 프로덕션 환경에서 별도의 파일에 가장 잘 보관되는 구성이 포함됩니다.
여기에서 구성 파일을 만드는 것이 좋습니다.
from gluon.storage import Storage
settings = Storage()
settings.production = False
if
settings.production:
settings.db_uri = 'sqlite://production.sqlite'
settings.migrate = False
else:
settings.db_uri = 'sqlite://development.sqlite'
settings.migrate = True
settings.title = request.
settings.subtitle = 'write something here'
settings.author = 'you'
settings.author_email = '[email protected]'
settings.keywords = ''
settings.description = ''
settings.layout_theme = 'Default'
settings.security_key = 'a098c897-724b-4e05-b2d8-8ee993385ae6'
settings.email_server = 'localhost'
settings.email_sender = '[email protected]'
settings.email_login = ''
settings.login_method = 'local'
settings.login_config = ''