Danh bạ cho dịch vụ gửi emailPhát triển & tùy chỉnh

Một script Python chuyển các file xuất danh bạ của bạn thành một CSV sạch, sẵn sàng nhập vào dịch vụ gửi email

Thường xong trong 15 phútBao gồm chỉnh sửaKiểm tra chất lượng
Các gói
Bảo vệ thanh toánChi tiết
  • Chỉnh sửa trong phạm vi gói là miễn phí.
  • Nếu bạn không phản hồi trong vòng 3 ngày sau khi bàn giao, kết quả sẽ được tự động chấp nhận.

Số tiền được tạm giữ khi bạn thanh toán và chỉ được chuyển khi bạn chấp nhận kết quả.

Một script Python chuyển các file xuất danh bạ của bạn thành một CSV sạch, sẵn sàng nhập vào dịch vụ gửi email

Ví dụ kết quả

Ví dụ cho gói Tiêu chuẩn

Gộp file doanh số hằng tháng của 9 cửa hàng thành một báo cáo Excel

Cách chạy

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Thư mục: sales/2026-10, tìm thấy 9 file
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 dòng
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 dòng
2026-11-02 09:14:04 WARN  shop-07.csv: bỏ qua 3 dòng không có giá (dòng 88, 412, 913)
2026-11-02 09:14:05 INFO  Xong: 10.412 dòng -> report-2026-10.xlsx (sheet “Doanh số” và “Tổng cộng”)

Cài đặt, không phải code

Tên cột của từng cửa hàng nằm trong settings.ini, nên thêm cửa hàng mới hay đổi tên cột chỉ là thêm một dòng ở đó:

[columns]
date = Ngày, Ngày bán, Ngày giao dịch
product = Sản phẩm, Mặt hàng, Tên hàng
quantity = SL, Số lượng, Cái
price = Giá, Đơn giá

Một phần code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Đọc file của một cửa hàng và đặt cho các cột tên theo báo cáo."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: không có cột cho “{name}” (đã tìm: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

File bàn giao: file ZIP gồm merge_sales.py (310 dòng), settings.ini, requirements.txt và README hướng dẫn cài Python, chạy script và ý nghĩa của từng thông báo trong nhật ký. Khách hàng tự chạy script trên máy tính của mình.

Khách hàng: một chuỗi nhỏ gồm 9 cửa hàng văn phòng phẩm; mỗi cửa hàng gửi doanh số của tháng dưới dạng file CSV hoặc Excel, với tên cột hơi khác nhau. Yêu cầu: một script đọc mọi file trong một thư mục, đưa các cột về cùng một dạng và ghi ra một báo cáo Excel duy nhất gồm toàn bộ doanh số và một sheet tổng theo từng cửa hàng.

Khách hàng và mọi thông tin đều là giả định.

Về dịch vụ này

Danh bạ xuất từ cửa hàng, CRM hay danh sách đăng ký sự kiện hiếm khi khớp với những gì dịch vụ gửi email muốn nhập: tên cột khác, họ và tên chung một ô, thẻ nằm ở chỗ lạ, người đã hủy đăng ký vẫn còn trong danh sách. Script Python này đọc các file xuất của bạn và ghi ra một CSV sạch theo định dạng nhập của dịch vụ: tách họ tên khi cần, ánh xạ trường và thẻ, loại bỏ email sai dạng và bản trùng, và từ gói Tiêu chuẩn, chỉ giữ người có đánh dấu đồng ý và bỏ người đã hủy đăng ký, kèm một file các dòng bị loại để bạn kiểm tra. Script dành cho danh bạ của chính bạn gồm những người đã đồng ý nhận tin từ bạn, không bao giờ cho danh sách mua hoặc thu thập trái phép. Script chạy trên máy tính của bạn và không kết nối với dịch vụ; bạn tự nhập file.

Bao gồm những gì

  • Bạn nhận được gìFile ZIP gồm script Python, README hướng dẫn từng bước và, từ gói Tiêu chuẩn, file cài đặt chứa ánh xạ trường và thẻ; code cũng được hiển thị trên trang đơn hàng.
  • Định dạng của dịch vụ bạn dùngTheo mẫu nhập hoặc file ví dụ của dịch vụ
  • Tôn trọng sự đồng ýTừ gói Tiêu chuẩn, chỉ người đã đồng ý, không có người đã hủy đăng ký
  • Loại bỏ bản trùng và lỗi gõLoại bỏ địa chỉ sai dạng và địa chỉ lặp lại
  • Giữ lại các dòng bị loạiMột file riêng cho biết những gì bị loại và vì sao
  • Code dễ đọcCó chú thích, dễ thêm trường về sau

Cách hoạt động

  1. 1
    File mẫuBạn gửi các dòng giả từ mỗi file xuất và định dạng nhập của dịch vụ
  2. 2
    CodeChúng tôi viết script và hướng dẫn chạy
  3. 3
    Chạy thửBạn chạy script, xem qua các dòng bị loại và nhập thử một danh sách nhỏ
  4. 4
    Chỉnh sửaBạn yêu cầu chỉnh sửa trong phạm vi gói và gửi thông báo lỗi nếu có

Chúng tôi cần gì từ bạn

Dòng tiêu đề và 10-20 dòng của mỗi file xuất với tên và email giả nhưng cùng cách trình bày, cột nào thể hiện sự đồng ý và cột nào thể hiện việc hủy đăng ký, dịch vụ gửi email bạn dùng và mẫu nhập của nó hoặc liên kết tới trang trợ giúp về nhập dữ liệu, và cách đặt thẻ hoặc phân khúc. Danh bạ được thu thập thế nào (cửa hàng của bạn, biểu mẫu đăng ký, sự kiện). Đừng bao giờ gửi danh sách thật.

Chúng tôi sẽ hỏi bạn:

  • Danh bạ lấy từ đâu?
  • Bạn sẽ nhập vào dịch vụ gửi email nào?
  • Sự đồng ý được ghi nhận thế nào?
  • Bạn có cần thẻ hoặc phân khúc không?

So sánh các gói

Các góiCơ bảnMột file xuất, một định dạng434.000 ₫Tiêu chuẩnXuất có cài đặt894.000 ₫Cao cấpCông cụ danh bạ1.815.000 ₫
Thời hạn1 ngày2 ngày3 ngày
Số lần chỉnh sửa123
Codetối đa 150 dòngtối đa 400 dòngtối đa 1.000 dòng
Số file code1tối đa 3tối đa 8
File cài đặtKhôngCóCó
Thông báo lỗi rõ ràng và nhật kýKhôngCóCó
Tùy chọn chạy và hướng dẫn chạy theo lịchKhôngKhôngCó
Hướng dẫn cài đặt và chạy (README)CóCóCó
Ngôn ngữPythonPythonPython
Đặt hàng Cơ bảnĐặt hàng Tiêu chuẩnĐặt hàng Cao cấp

Bảo vệ thanh toán

Bạn thanh toán khi đặt hàng, nhưng tiền chỉ được chuyển cho kết quả đã được chấp nhận.

  • Giá cố địnhGiá gói không thay đổi sau khi bạn thanh toán.
  • Số tiền được tạm giữKhi bạn thanh toán, số tiền chỉ được tạm giữ. Tiền được chuyển cho dịch vụ khi bạn chấp nhận kết quả.
  • Kiểm tra trước khi bàn giaoMọi kết quả đều được kiểm tra chất lượng trước khi đến tay bạn, và bạn xem được kết quả trên trang đơn hàng trước khi chấp nhận.
  • Chỉnh sửa miễn phíYêu cầu chỉnh sửa trong phạm vi bản yêu cầu của bạn, với số lần mà gói cho phép.
  • Tự động chấp nhận sau 3 ngàyNếu trong vòng 3 ngày sau khi bàn giao, bạn không chấp nhận kết quả cũng không yêu cầu chỉnh sửa, kết quả sẽ được tự động chấp nhận. Nếu bạn nhắn tin trong chat đơn hàng sau khi bàn giao, đơn hàng sẽ chờ; sau khi trả lời, chúng tôi có thể tính lại 3 ngày từ đầu và sẽ thông báo trong chat.
  • Làm lại hoặc hoàn tiền toàn bộNếu kết quả không đúng với yêu cầu của bạn và các lần chỉnh sửa không khắc phục được, hoặc công việc kéo dài quá gấp đôi thời hạn, hãy nhắn tin trong chat đơn hàng: chúng tôi sẽ làm lại hoặc hoàn tiền toàn bộ.
Cách hoạt động →

Hỏi đáp

Tôi có dùng được cho danh sách đã mua không?

Không. Script dành cho danh bạ của chính bạn gồm những người đã đồng ý nhận email của bạn. Danh sách mua hoặc thu thập trái phép vi phạm quy định của các dịch vụ gửi email và pháp luật ở nhiều quốc gia.

Script có tải danh bạ lên dịch vụ không?

Không. Script tạo file; bạn nhập file trong tài khoản dịch vụ gửi email của mình, nơi dịch vụ cũng yêu cầu bạn xác nhận rằng các liên hệ đã đồng ý.

Script có kiểm tra email có tồn tại không?

Script kiểm tra từng địa chỉ có được viết đúng không và đánh dấu các lỗi gõ tên miền thường gặp. Hộp thư có tồn tại hay không thì chỉ máy chủ thư biết, và dịch vụ gửi email của bạn sẽ báo các email bị trả về sau khi gửi.

Danh bạ của tôi có an toàn không?

Danh bạ vẫn nằm trên máy tính của bạn: bạn tự chạy script, và chúng tôi chỉ thấy những dòng giả bạn gửi.

Chưa tìm thấy câu trả lời?

Các gói