Giao thức truyền thư đơn giản [SMTP] được sử dụng làm giao thức để xử lý việc chuyển email bằng Python. Nó được sử dụng để định tuyến email giữa các máy chủ email. Nó là một giao thức lớp ứng dụng cho phép người dùng gửi thư đến người khác. Người nhận truy xuất email bằng các giao thức POP [Giao thức Bưu điện] và IMAP [Giao thức Truy cập Thư Internet]
Khi máy chủ lắng nghe kết nối TCP từ máy khách, nó sẽ bắt đầu kết nối trên cổng 587
Python cung cấp một mô-đun smtplib, mô-đun này xác định một đối tượng phiên máy khách SMTP được sử dụng để gửi email đến một máy internet. Với mục đích này, chúng ta phải nhập mô-đun smtplib bằng câu lệnh nhập
Đối tượng SMTP được sử dụng để chuyển email. Cú pháp sau được sử dụng để tạo đối tượng smtplib
Nó chấp nhận các tham số sau
- chủ nhà. Đó là tên máy chủ của máy đang chạy máy chủ SMTP của bạn. Tại đây, chúng ta có thể chỉ định địa chỉ IP của máy chủ như [https. //www. javatpoint. com] hoặc máy chủ cục bộ. Nó là một tham số tùy chọn
- Hải cảng. Đó là số cổng mà máy chủ đang lắng nghe các kết nối SMTP. Nó là 25 theo mặc định
- local_hostname. Nếu máy chủ SMTP đang chạy trên máy cục bộ của bạn, chúng tôi có thể đề cập đến tên máy chủ của máy cục bộ
Phương thức sendmail[] của đối tượng SMTP được sử dụng để gửi thư đến máy mong muốn. Cú pháp được đưa ra dưới đây
Thí dụ
Gửi thư từ gmail
Có những trường hợp email được gửi bằng máy chủ Gmail SMTP. Trong trường hợp này, chúng ta có thể chuyển Gmail làm máy chủ SMTP thay vì sử dụng localhost với cổng 587
Sử dụng cú pháp sau
Tại đây, chúng ta cần đăng nhập vào tài khoản Gmail bằng tên người dùng và mật khẩu Gmail. Với mục đích này, smtplib cung cấp phương thức login[] chấp nhận tên người dùng và mật khẩu của người gửi
Điều này có thể khiến Gmail của bạn yêu cầu bạn cấp quyền truy cập vào các ứng dụng kém an toàn hơn nếu bạn đang sử dụng Gmail. Bạn sẽ cần BẬT tính năng này tạm thời để tính năng này hoạt động
Xem xét ví dụ sau
Thí dụ
Gửi HTML trong email
Chúng tôi có thể định dạng HTML trong tin nhắn bằng cách chỉ định phiên bản MIME, loại nội dung và bộ ký tự để gửi HTML
Hướng dẫn này sẽ giới thiệu về SMTP, một mô-đun Python được sử dụng để gửi thư. Nó cũng sẽ trình bày cách gửi các loại email khác nhau như email văn bản đơn giản, email có tệp đính kèm và email có nội dung HTML
Sau này, tôi sẽ chỉ cho bạn cách
Giới thiệu về SMTP
Giao thức truyền thư đơn giản [SMTP] xử lý việc gửi và định tuyến email giữa các máy chủ thư
Trong Python, mô-đun
140 xác định đối tượng phiên máy khách SMTP có thể được sử dụng để gửi thư đến bất kỳ máy Internet nào có trình nền trình nghe SMTP hoặc ESMTP
Đây là cách tạo một đối tượng SMTP
1
import smtplib
2
3
server = smtplib.SMTP[host="host_address" ,port="your_port"]
Tạo và gửi một email đơn giản
Tập lệnh sau sẽ cho phép bạn gửi email qua máy chủ Gmail SMTP. Tuy nhiên, Google sẽ không cho phép đăng nhập qua
140 vì Google đã gắn cờ loại đăng nhập này là "kém an toàn". Để giải quyết vấn đề này, hãy truy cập https. //www. Google. com/settings/security/lesssecureapps khi bạn đã đăng nhập vào tài khoản Google của mình và "Cho phép các ứng dụng kém an toàn hơn". Xem ảnh chụp màn hình bên dưới
Chúng tôi sẽ làm theo các bước sau để hoàn thành quá trình này
- Tạo một đối tượng SMTP để kết nối với máy chủ
- Đăng nhập vào tài khoản của bạn
- Xác định tiêu đề thư và thông tin đăng nhập của bạn
- Tạo một đối tượng thư
1
42 và đính kèm các tiêu đề có liên quan vào nó, tôi. e. Từ, Đến và Chủ đề - Đính kèm tin nhắn vào đối tượng
1
42 - Cuối cùng, gửi tin nhắn
Quá trình này là đơn giản, như hình dưới đây
1
# import necessary packages
2
3
import smtplib1
import smtplib2
import smtplib3
import smtplib4
import smtplib
import smtplib6
import smtplib8
import smtplib9
20
21
22
24
26
27
28
0
1
2
3
4
5
6
7
8
9
30
32
33
34
35
36
38
39
server = smtplib.SMTP[host="host_address" ,port="your_port"]0
server = smtplib.SMTP[host="host_address" ,port="your_port"]1
server = smtplib.SMTP[host="host_address" ,port="your_port"]2
server = smtplib.SMTP[host="host_address" ,port="your_port"]4
server = smtplib.SMTP[host="host_address" ,port="your_port"]5
server = smtplib.SMTP[host="host_address" ,port="your_port"]6
server = smtplib.SMTP[host="host_address" ,port="your_port"]8
server = smtplib.SMTP[host="host_address" ,port="your_port"]9
10
11
12
14________4__
Lưu ý rằng địa chỉ 'Tới' và 'Từ' phải được đưa vào tiêu đề thư một cách rõ ràng
Tạo và gửi email có tệp đính kèm
Trong ví dụ này, chúng tôi sẽ gửi email có tệp đính kèm hình ảnh. Quá trình này tương tự như gửi một email văn bản thuần túy
- Tạo một đối tượng SMTP để kết nối với máy chủ
- Đăng nhập vào tài khoản của bạn
- Xác định tiêu đề thư và thông tin đăng nhập của bạn
- Tạo một đối tượng thư
1
42 và đính kèm các tiêu đề có liên quan vào nó, tôi. e. Từ, Đến và Chủ đề - Đọc và đính kèm hình ảnh vào tin nhắn
1
42 đối tượng - Cuối cùng, gửi tin nhắn
1
import smtplib
2
import smtplib1
3
23
import smtplib2
import smtplib3
import smtplib4
import smtplib9
import smtplib6
21
import smtplib8
20
22
1
24
3
26
5
28
7
0
import smtplib03
2
4
6
import smtplib07
8
import smtplib09
30
32
import smtplib12
34
36
import smtplib16
38
server = smtplib.SMTP[host="host_address" ,port="your_port"]1
server = smtplib.SMTP[host="host_address" ,port="your_port"]0
server = smtplib.SMTP[host="host_address" ,port="your_port"]2
server = smtplib.SMTP[host="host_address" ,port="your_port"]5
server = smtplib.SMTP[host="host_address" ,port="your_port"]4
server = smtplib.SMTP[host="host_address" ,port="your_port"]6
server = smtplib.SMTP[host="host_address" ,port="your_port"]9
server = smtplib.SMTP[host="host_address" ,port="your_port"]8
11
10
12
14
17
16
19___
Lớp này là một lớp con được sử dụng để tạo các đối tượng thông báo MIME của các loại hình ảnh. Các lớp có sẵn khác bao gồm và
Tạo và gửi email HTML
Điều đầu tiên chúng ta sẽ làm là tạo một mẫu email HTML
Tạo một mẫu HTML
Đây là mã HTML cho mẫu. Nó chứa hai cột bảng, mỗi cột có hình ảnh và nội dung xem trước. Nếu bạn thích một giải pháp chuyên nghiệp, làm sẵn, hãy lấy một số mẫu email tốt nhất. Chúng tôi có một số tùy chọn đáp ứng với các tính năng dễ tùy chỉnh để bắt đầu
1
import smtplib42
2
import smtplib44
3
import smtplib46
import smtplib2
import smtplib48
import smtplib4
import smtplib50
import smtplib6
import smtplib52
import smtplib8
import smtplib54
20
import smtplib56
22
import smtplib58
24
import smtplib60
26
import smtplib62
28
import smtplib64
0
import smtplib66
2
import smtplib68
4
import smtplib70
6
import smtplib72
8
import smtplib74
30
import smtplib76
32
import smtplib78
34
import smtplib80
36
import smtplib82
38
import smtplib84
server = smtplib.SMTP[host="host_address" ,port="your_port"]0
import smtplib86
server = smtplib.SMTP[host="host_address" ,port="your_port"]2
import smtplib88
server = smtplib.SMTP[host="host_address" ,port="your_port"]4
import smtplib90
server = smtplib.SMTP[host="host_address" ,port="your_port"]6
import smtplib92
server = smtplib.SMTP[host="host_address" ,port="your_port"]8
10
import smtplib96
12________
Mẫu cuối cùng sẽ trông như thế này khi hoàn thành
1
import smtplib
2
16
3
18
import smtplib2
import smtplib4
22
import smtplib6
24
import smtplib8
26
20
28
22
30
24
32
26
34
28
36
0
38
2
40
4
42
6
44
8
46
30
48
32
50
34
52
36
54
38
56
server = smtplib.SMTP[host="host_address" ,port="your_port"]0
58
server = smtplib.SMTP[host="host_address" ,port="your_port"]2
60
server = smtplib.SMTP[host="host_address" ,port="your_port"]4
26
server = smtplib.SMTP[host="host_address" ,port="your_port"]6
64
server = smtplib.SMTP[host="host_address" ,port="your_port"]8
26
10
26
12________4_
Thực thi mã của bạn và nếu không có lỗi xảy ra thì email đã thành công. Bây giờ, hãy truy cập hộp thư đến của bạn và bạn sẽ thấy email của mình dưới dạng nội dung HTML được định dạng độc đáo
Gửi Email Bằng Flask
Phần này sẽ đề cập đến việc cấu hình và gửi email bằng Flask-Mail bằng giao thức SMTP. Flask-Mail là một tiện ích mở rộng cung cấp giao diện đơn giản để thiết lập SMTP với ứng dụng Flask của bạn
Tạo một thư mục dự án có tên là jar_email. Bên trong thư mục dự án, tạo một môi trường ảo và kích hoạt nó
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]52_______3_______6_______54
Cài đặt Flask và Flask-Mail bằng cách sử dụng
150
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]56_______3_______6_______58
Ngoài ra, hãy tạo một ứng dụng tệp. py. trong ứng dụng. py, hãy bắt đầu bằng cách xác định nhập khẩu của chúng tôi
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]60_______3_______6_______62
Tiếp theo, xác định một phiên bản ứng dụng Flask
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]60_______3_______
server = smtplib.SMTP[host="host_address" ,port="your_port"]62
3
server = smtplib.SMTP[host="host_address" ,port="your_port"]68
Vì chúng tôi đang sử dụng giao thức SMTP để gửi email bằng Flask, hãy thêm một vài cấu hình như bên dưới.
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]60
2
server = smtplib.SMTP[host="host_address" ,port="your_port"]62
3___
import smtplib2
server = smtplib.SMTP[host="host_address" ,port="your_port"]68
import smtplib4
import smtplib6
server = smtplib.SMTP[host="host_address" ,port="your_port"]78
import smtplib8
server = smtplib.SMTP[host="host_address" ,port="your_port"]80
20
server = smtplib.SMTP[host="host_address" ,port="your_port"]82
22
server = smtplib.SMTP[host="host_address" ,port="your_port"]84
24_______6_______86_______3_______6_______6_______88
Flask-Mail đi kèm với phiên bản
151, quản lý email. Hãy khởi tạo phiên bản
151
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]90
Tiếp theo, tạo một phiên bản tin nhắn và gửi tin nhắn dự định
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]92_______3_______
server = smtplib.SMTP[host="host_address" ,port="your_port"]94
3___
server = smtplib.SMTP[host="host_address" ,port="your_port"]96
import smtplib2
import smtplib4
import smtplib6
import smtplib8
101
20
103
Mã đầy đủ cho ứng dụng. py sẽ trông như thế này
1
server = smtplib.SMTP[host="host_address" ,port="your_port"]60
2
107
3
import smtplib2
server = smtplib.SMTP[host="host_address" ,port="your_port"]68
import smtplib4
import smtplib6
server = smtplib.SMTP[host="host_address" ,port="your_port"]78
import smtplib8
server = smtplib.SMTP[host="host_address" ,port="your_port"]80
20
server = smtplib.SMTP[host="host_address" ,port="your_port"]82
22
server = smtplib.SMTP[host="host_address" ,port="your_port"]84
24
server = smtplib.SMTP[host="host_address" ,port="your_port"]86
26
123
28
0
2
server = smtplib.SMTP[host="host_address" ,port="your_port"]90
4
server = smtplib.SMTP[host="host_address" ,port="your_port"]92
6
server = smtplib.SMTP[host="host_address" ,port="your_port"]94
8
server = smtplib.SMTP[host="host_address" ,port="your_port"]96
30
32
34
101
36
103
Phần kết luận
Hướng dẫn này đã trình bày hầu hết những gì cần thiết để gửi email cho ứng dụng của bạn. Có một số API có sẵn để gửi email, chẳng hạn như. g. GửiGrid. Vì vậy, bạn không cần phải bắt đầu lại từ đầu, nhưng điều quan trọng là phải hiểu những điều cơ bản. Để biết thêm thông tin, hãy truy cập tài liệu Python