Web2py - อีเมลและ SMS

web2py มีฟังก์ชันการส่งอีเมลและ SMS ไปยังผู้ใช้ ใช้ไลบรารีเพื่อส่งอีเมลและ SMS

การตั้งค่าอีเมล

คลาสในตัว ได้แก่ gluon.tools.Mailclass ใช้ในการส่งอีเมลใน web2py framework สามารถกำหนดเมลล์ได้ด้วยคลาสนี้

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 framework เนื่องจากจะต้องใช้บริการของบุคคลที่สามที่สามารถถ่ายทอดข้อความไปยังผู้รับได้ บริการของบุคคลที่สามไม่ใช่บริการฟรีและจะแตกต่างกันอย่างเห็นได้ชัดตามภูมิภาคทางภูมิศาสตร์ (ในแต่ละประเทศ)

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 ซึ่งจะจับคู่ชื่อของ บริษัท โทรศัพท์รายใหญ่กับที่อยู่อีเมล postfix

บริษัท โทรศัพท์มักจะถือว่าอีเมลที่มาจากบริการของบุคคลที่สามเป็นสแปม วิธีที่ดีกว่าคือ บริษัท โทรศัพท์ส่ง SMS เอง บริษัท โทรศัพท์ทุกแห่งมีที่อยู่อีเมลที่ไม่ซ้ำกันสำหรับหมายเลขโทรศัพท์มือถือทุกหมายเลขในพื้นที่จัดเก็บข้อมูลและสามารถส่ง SMS ไปยังอีเมลได้โดยตรง

ในตัวอย่างข้างต้น

  • sms_email ฟังก์ชันรับหมายเลขโทรศัพท์ (เป็นสตริง) ซึ่งจะส่งกลับที่อยู่อีเมลของโทรศัพท์

  • แอพ scaffolding มีหลายไฟล์ หนึ่งในนั้นคือ model / db.py ซึ่งนำเข้าสี่

  • ชั้นเรียนจาก gluon.tools รวมไลบรารีอีเมลและกำหนดอ็อบเจ็กต์ส่วนกลางต่างๆ

  • แอปพลิเคชัน scaffolding ยังกำหนดตารางที่ต้องการโดยวัตถุรับรองความถูกต้องเช่น 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 = ''