Làm cách nào để tạo kết hợp thư trong python?

Giả sử bạn đang tổ chức một số sự kiện và bạn có một danh sách gửi thư gồm các địa chỉ email và những người bạn cần gửi thư để thông báo cho họ biết họ sẽ ở phòng nào. Bạn muốn gửi một email được cá nhân hóa cho từng người và bạn không muốn gõ từng cái một bằng tay. Python có thể tự động hóa việc này cho bạn. Tất cả những gì bạn cần là danh sách gửi thư ở định dạng có cấu trúc nào đó, sau đó bạn có thể duyệt qua từng dòng để tạo và gửi email

Chúng tôi sẽ sử dụng một bảng tổ chức để lưu trữ dữ liệu trong

First nameLast nameemail addressSố phòngJaneDoejane-doe@gmail. com1JohnDoejohn-doe@gmail. com2JimmyJohnjimmy-john@gmail. com3

Chúng tôi chuyển bảng đó vào một khối nguồn chế độ tổ chức dưới dạng một biến được gọi là dữ liệu, đây sẽ là một danh sách các danh sách, một danh sách cho mỗi hàng của bảng. Ngoài ra, bạn có thể đọc những thứ này từ bảng tính excel, tệp csv hoặc một số loại cấu trúc dữ liệu python

Chúng tôi không thực sự gửi email trong ví dụ này. Để làm điều đó, bạn cần có quyền truy cập vào máy chủ thư, máy chủ này có thể nằm trên máy của chính bạn hoặc có thể là máy chủ chuyển tiếp mà bạn có quyền truy cập

Chúng tôi tạo một chuỗi là một mẫu với một số trường được thay thế, e. g. tên và số phòng trong trường hợp này. Sau đó, chúng tôi lặp qua từng hàng của bảng và định dạng mẫu với các giá trị đó, đồng thời tạo thông báo email cho người đó. Đầu tiên, chúng tôi in từng tin nhắn để kiểm tra xem chúng có đúng không

Ví dụ này sẽ hướng dẫn bạn các bước để tạo email mẫu, cơ sở dữ liệu và cấu hình máy chủ STMP. Sau đó sẽ hướng dẫn cách test trước khi gửi mail thật

Tạo email, cơ sở dữ liệu và cấu hình mẫu mẫu

$ mailmerge --sample
Created sample template email "mailmerge_template.txt"
Created sample database "mailmerge_database.csv"
Created sample config file "mailmerge_server.conf"

Edit these files, then run mailmerge again.

Chỉnh sửa cấu hình máy chủ SMTP $ sudo pip install mailmerge 4

Các giá trị mặc định được thiết lập cho GMail. Hãy chắc chắn để thay đổi tên người dùng của bạn. Nếu bạn sử dụng xác thực 2 yếu tố, trước tiên hãy tạo mật khẩu ứng dụng. Các ví dụ cấu hình khác có trong phần bình luận của

$ sudo pip install mailmerge
4

tiền boa. SSH hoặc VPN vào mạng của bạn trước. Chạy mailmerge từ cùng một mạng với máy chủ SMTP có thể giúp bạn tránh các bộ lọc thư rác và điều tiết máy chủ. Mẹo này không áp dụng cho Gmail

[smtp_server]
host = smtp.gmail.com
port = 465
security = SSL/TLS
username = YOUR_USERNAME_HERE

Chỉnh sửa thông báo email mẫu $ sudo pip install mailmerge 6

Các trường

$ sudo pip install mailmerge
7,
$ sudo pip install mailmerge
8 và
$ sudo pip install mailmerge
9 là bắt buộc. Phần còn lại là nội dung của thông điệp. Sử dụng
$ sudo dnf install python3-mailmerge
0 để chỉ ra các tham số tùy chỉnh sẽ được đọc từ cơ sở dữ liệu. Ví dụ,
$ sudo dnf install python3-mailmerge
1 sẽ được điền từ cột
$ sudo dnf install python3-mailmerge
2 của
$ sudo dnf install python3-mailmerge
3

TO: {{email}}
SUBJECT: Testing mailmerge
FROM: My Self 

Hi, {{name}},

Your number is {{number}}.

Chỉnh sửa cơ sở dữ liệu $ sudo dnf install python3-mailmerge 3

Lưu ý rằng dòng đầu tiên là tiêu đề khớp với các tham số trong ví dụ mẫu, ví dụ:

$ sudo dnf install python3-mailmerge
1

tiền boa. Thêm chính bạn làm người nhận đầu tiên. Điều này hữu ích cho việc thử nghiệm

email,name,number
[email protected],"Myself",17
[email protected],"Bob",42

chạy khô

Đầu tiên, chạy khô một email (_______1_______1 mặc định). Thao tác này sẽ điền vào các trường mẫu của email đầu tiên và in nó ra thiết bị đầu cuối

$ mailmerge
>>> message 1
TO: [email protected]
SUBJECT: Testing mailmerge
FROM: My Self 
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Date: Thu, 19 Dec 2019 19:49:11 -0000

Hi, Myself,

Your number is 17.
>>> sent message 1
>>> Limit was 1 message.  To remove the limit, use the --no-limit option.
>>> This was a dry run.  To send messages, use the --no-dry-run option.

Nếu điều này có vẻ chính xác, hãy thử chạy khô lần thứ hai, lần này với tất cả người nhận sử dụng tùy chọn

$ sudo dnf install python3-mailmerge
7

$ mailmerge --no-limit
>>> message 1
TO: [email protected]
SUBJECT: Testing mailmerge
FROM: My Self 
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Date: Thu, 19 Dec 2019 19:49:33 -0000

Hi, Myself,

Your number is 17.
>>> sent message 1
>>> message 2
TO: [email protected]
SUBJECT: Testing mailmerge
FROM: My Self 
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Date: Thu, 19 Dec 2019 19:49:33 -0000

Hi, Bob,

Your number is 42.
>>> sent message 2
>>> This was a dry run.  To send messages, use the --no-dry-run option.

Gửi email đầu tiên

Chúng tôi đang hết sức cẩn thận trong ví dụ này để tránh gửi thư rác, vì vậy, tiếp theo, chúng tôi sẽ chỉ gửi một email thực (_______1_______1 mặc định). Nhớ lại rằng bạn đã tự thêm mình làm người nhận email đầu tiên

$ pip install mailmerge
0

Bạn có thể phải nhập mật khẩu email của mình khi được nhắc. (Nếu bạn sử dụng Gmail có xác thực 2 yếu tố, đừng quên sử dụng mật khẩu ứng dụng bạn đã tạo trong khi. )

Bây giờ, hãy kiểm tra email của bạn và đảm bảo rằng thư đã được gửi đi. Nếu mọi thứ đều ổn, thì đã đến lúc gửi tất cả các tin nhắn

Gửi tất cả email

$ pip install mailmerge
1

Ví dụ mẫu nâng cao

Ví dụ này sẽ gửi báo cáo tiến độ cho học sinh. Mẫu sử dụng nhiều tính năng nâng cao hơn của tài liệu công cụ mẫu jinja2 để tùy chỉnh thông báo cho học viên

Mẫu
$ sudo pip install mailmerge
6

$ pip install mailmerge
2

Cơ sở dữ liệu
$ sudo dnf install python3-mailmerge
3

Một lần nữa, chúng tôi sẽ sử dụng phương pháp hay nhất để biến bạn thành người nhận đầu tiên, điều này rất hữu ích cho việc thử nghiệm

$ pip install mailmerge
3

định dạng HTML

Mailmerge hỗ trợ định dạng HTML

chỉ HTML

Ví dụ này sẽ sử dụng HTML để định dạng email. Thêm

$ mailmerge --sample
Created sample template email "mailmerge_template.txt"
Created sample database "mailmerge_database.csv"
Created sample config file "mailmerge_server.conf"

Edit these files, then run mailmerge again.
1 ngay dưới tiêu đề email, sau đó bắt đầu tin nhắn của bạn bằng

Mẫu
$ sudo pip install mailmerge
6

$ pip install mailmerge
4

HTML và văn bản thuần túy

Ví dụ này cho thấy cách cung cấp cả phiên bản HTML và văn bản thuần túy trong cùng một thông báo. Trình đọc thư của người dùng có thể chọn một trong hai

Mẫu
$ sudo pip install mailmerge
6

$ pip install mailmerge
5

định dạng đánh dấu

Mailmerge hỗ trợ định dạng Markdown bằng cách bao gồm tiêu đề tùy chỉnh tùy chỉnh

$ mailmerge --sample
Created sample template email "mailmerge_template.txt"
Created sample database "mailmerge_database.csv"
Created sample config file "mailmerge_server.conf"

Edit these files, then run mailmerge again.
4 trong thư. Mailmerge sẽ hiển thị phần đánh dấu thành HTML, sau đó bao gồm cả phiên bản HTML và văn bản thuần túy trong một thư nhiều phần. Trình đọc thư của người nhận sau đó có thể chọn một trong hai định dạng

Mẫu $ sudo pip install mailmerge 6

$ pip install mailmerge
6

tệp đính kèm

Ví dụ này cho thấy cách thêm tệp đính kèm với tiêu đề

$ mailmerge --sample
Created sample template email "mailmerge_template.txt"
Created sample database "mailmerge_database.csv"
Created sample config file "mailmerge_server.conf"

Edit these files, then run mailmerge again.
6 đặc biệt

Mẫu
$ sudo pip install mailmerge
6

$ pip install mailmerge
7

Chạy khô để xác minh tệp đính kèm tồn tại. Nếu tên tệp đính kèm bao gồm một mẫu, bạn nên chạy khô với cờ

$ sudo dnf install python3-mailmerge
7

$ pip install mailmerge
8

Tệp đính kèm hình ảnh nội tuyến

Ví dụ này cho thấy cách thêm tệp đính kèm hình ảnh nội tuyến để hình ảnh được hiển thị trực tiếp trong nội dung email. Bạn phải thêm hình ảnh nội tuyến dưới dạng tệp đính kèm trước khi tham chiếu nó trong nội dung

Ví dụ HTML. Mẫu
$ sudo pip install mailmerge
6

$ pip install mailmerge
9

Ví dụ đánh dấu. Mẫu
$ sudo pip install mailmerge
6

$ sudo pip install mailmerge
0

Đóng góp

Đóng góp từ cộng đồng được hoan nghênh. Xem hướng dẫn đóng góp

Sự nhìn nhận

Mailmerge được viết bởi Andrew DeOrio awdeorio@umich. giáo dục, http. //andre deorio. com. Sesh Sadasivam (@seshrs) đã đóng góp nhiều tính năng và sửa lỗi