Forum

Please or Register to create posts and topics.

Pain Point

เดี๋ยวนี้คนชอบใช้คำนี้แทนคำว่า "ปัญหา" เนอะ ... แปลแล้วจั๊กจี้ ไม่แปลดีกว่า เอาล่ะ ผมก็จะตามแห่ใช้ไปด้วย

ผมมี pain point อย่างหนึ่ง คือ หมวกใบใหม่ที่ต้องรับผิดชอบนี้ต้องรับอีเมล์ที่มีไฟล์แนบ DDR (Daily Drilling Report) มากมายหลายอีเมล์ทุกๆวัน ใน 1 อีเมล์ ก็มีหลาย DDR เพราะมีหลายแท่นเจาะฯ เพื่อให้ผมอ่านๆ และ ให้บริการความเห็น (หรือ ขี้เกียจก็ไม่อ่าน 555) ... เป็น service provider ไปแย้วววว

เสร็จแล้วก็ต้องเอาไปเก็บในคลังเอกสารส่วนกลาง ... ต่อให้คลิ๊ก save (attachment) all ทุกวันๆก็ ขี้เกียจ เพราะมันหลายอีเมล์เกิ้น นี่แหละ innovation เกิดตอนนี้วิศวกร(ฉลาดๆแต่)ขี้เกียจ

ผมก็นะ ตาแก่ขี้บ่น ก็บ่นให้น้องโต๊ะข้างๆฟัง น้องมันก็บอกงั้นลุงเอ๊ยพี่เอาโค้ด Python นี่ไป ลง สร้างแฟ้มย่อยชื่อ xxx ใน inbox แล้วตั้งค่าให้ outlook ให้มัน auto forward อีเมล์รายวันนั่นไปที่ xxx แล้วพี่โปรแกรมนี้นะใน drive c เอาโค้ดผมไปแปะ 2 -3 สัปดาห์พี่ก็ เปิดโปรแกรมนี้ขึ้นมา กด shift enter พร้อมกันนะพี่ แล้วไฟล์แนบต่างๆที่อยู่ในอีเมล์ที่อยู่ใน แฟ้ม xxx ของพี่ มันจะโดยโหลดไปอยู่ใน working directory (อะไรก็ช่างขอให้มันมาอยู่ใน hard disk ผมก่อนก็พอ) โดยพลัน

ว่างแล้ววิศวกรขี้เกียจก็ทำตามที่น้องนั่นแนะนำ ... เฮ้ย ... ได้ผลว่ะ

ปกติ ไฟล์ DDR เป็น pdf แล้วจะมี วันที่ของ DDR และ/หรือ หมายเลข DDR เป็นส่วนหนึ่งของชื่อไฟล์ ก็สามารถเขียนสคริป หรือ ย้ายเป็นล๊อตๆต่อไปได้ แต่มีไฟล์ DDR จากแท่นเจาะหนึ่ง ดันไม่มี วันที่หรือหมายเลขอะไรเลยที่ชื่อไฟล์ พอเข้าไปดูใน hard disk เจอปัญหา ... เพราะมันจะโหลดทับๆกันลงไปเหลือแต่ DDR สุดท้าย ไฟล์เดียว

วิธีแก้ก็ คือ บอกไปที่ต้นทาง เฮ้ย (มึง)ใส่วันที่ในชื่อไฟล์ด้วยซิว่ะ ... เงียบ ไม่ตอบ (แปลว่า กูไม่สน ไม่ใช่ปัญหากู)

กลับไปหาน้องเจ้าของโค้ด Python ให้แก้โค้ดเอาวันที่ของแต่ล่ะอีเมล์ใส่ชื่อไฟล์ทุกไฟล์ก่อนโหลดลง hard disk น้องมันก็ไม่รู้จะแก้ไง "ผมก็ก๊อปเขามาพี่ 555"

หันซ้ายหันขวา คิดอะไรไม่ออก จะเรียนเขียนโค้ดเองก็นะ อีกชาติหนึ่งคงได้หรอก

อย่ากระนั้นเลย เขาว่า ChatGPT มันเก่ง เอ้า ลองหน่อย ...

จัดการโหลดมาใช้ ของฟรีนี่แหละ ... write Python code to extract every attached file from every mail in outlook inbox.Folders["xxx"], add date of host e-mail after every file names and save those files in current working directory

ว้า มันตอบอะไรมาก็ไม่รู้ เป็นย่อหน้าๆ เหมือนมันอ่านที่ละประโยคแล้วทำ ไม่สำเร็จรูป

งั้นลองให้ ของพี่สี Deepseek ของฟรี มาแรง ต้องลอง ใส่คำสั่งเดียวกันเดี๊ยะ

เสี้ยววินาทีเดียวครับ ...

import os
import win32com.client
from datetime import datetime

# Connect to Outlook
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

# Access the "xxx" folder in the inbox
inbox = outlook.Folders.Item("Your Email Address").Folders.Item("Inbox")
xxx_folder = inbox.Folders.Item("xxx")

# Get the current working directory
save_folder = os.getcwd()

# Iterate through all emails in the "xxx" folder
for message in xxx_folder.Items:
# Check if the email has attachments
if message.Attachments.Count > 0:
# Get the date of the email
email_date = message.ReceivedTime.strftime("%Y%m%d")

# Iterate through all attachments
for attachment in message.Attachments:
# Create a new filename with the email date appended
file_name, file_extension = os.path.splitext(attachment.FileName)
new_file_name = f"{file_name}_{email_date}{file_extension}"

# Save the attachment to the current working directory
save_path = os.path.join(save_folder, new_file_name)
attachment.SaveAsFile(save_path)
print(f"Saved: {save_path}")

print("All attachments have been saved.")

ผมแค่เปลี่ยน "Your Email Address" เป็น อีเมล์ผม ... ก๊อปแปะ run จบเลยครับ ได้ผลตามต้องการทุกเม็ด เด็ดจริง ...

ยกที่ 1 ของประสบการณ์ตรงผม พี่สี vs. ปู่ทรัมป์ สกอร์ 1-0

ไม่สงวนลิขสิทธิ์นะครับ ก๊อปไปใช้ได้เลย แค่สร้าง folder ย่อยใน inbox แล้วใส่ชื่อแทน xxx แล้วเปลี่ยน e-mail address เป็นของคุณเอง ตรง "Your Email Address" ก๊อปแปะ ที่ Python editor เดาว่าใช้ตัวไหนก็ได้นะ

บทเรียนนี้สอนให้รู้ว่า ...

1. ไม่มีใครแก่เกินลองอะไรใหม่ๆ

2. วิศวกรขี้เกียจมักจะสร้างสรรค์โลกให้อยู่ง่ายขึ้นเสมอ 😛

พ่อน้องเฟิร์นและน้องภัทร

log in แล้ว comment กันได้เลยครับ ถ้ายังไม่ลงทะเบียนก็ลงทะเบียนกันน้าาา แป๊บเดียว ใช้แค่ชื่อเล่น กับ password จะได้เม้าส์มอยกันได้

The Sweet Girl

ของมือสองของเฟิร์นค่ะ มีหลายชิ้นเลย ราคาดีสุดๆ (คลิ๊กที่รูปนะคะ ลิงค์จะพาไปที่ร้านค่ะ)

Fern shop

--------- คลิ๊ก - The Sweet Girl ----------