From b79fe50354a70476e69b49f675a5b1e85d037c0b Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Thu, 19 Sep 2024 20:47:04 +0900 Subject: [PATCH 1/9] Added requirements.txt --- gmail_birthday_sender/requirements.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 gmail_birthday_sender/requirements.txt diff --git a/gmail_birthday_sender/requirements.txt b/gmail_birthday_sender/requirements.txt new file mode 100644 index 000000000..e361fb692 --- /dev/null +++ b/gmail_birthday_sender/requirements.txt @@ -0,0 +1,13 @@ +cachetools==5.5.0 +certifi==2024.8.30 +charset-normalizer==3.3.2 +cssselect==1.2.0 +cssutils==2.11.1 +idna==3.8 +lxml==5.3.0 +more-itertools==10.5.0 +premailer==3.10.0 +requests==2.32.3 +schedule==1.2.2 +urllib3==2.2.2 +yagmail==0.15.293 From 0a867761598878cc034ccc52aac35f65241dc339 Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Thu, 19 Sep 2024 20:48:13 +0900 Subject: [PATCH 2/9] Added required information for user --- gmail_birthday_sender/main.py | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 gmail_birthday_sender/main.py diff --git a/gmail_birthday_sender/main.py b/gmail_birthday_sender/main.py new file mode 100644 index 000000000..42dc553e7 --- /dev/null +++ b/gmail_birthday_sender/main.py @@ -0,0 +1,44 @@ +import yagmail +import schedule +import time +import datetime +import os + +# Input your information by chnaging string part from here--------------------- + +email = 'your_account@gmail.com' +# used for email body (e.g. sincerely ) +your_name = 'your_real_name' +recipient_name = 'John Doe' +# Your application password can be used only after 2-step verification +password = 'your_gmailpassword' + +# Recipient's birthday information +today = datetime.date.today() +birthday_list = { + # Change John to recipient's name + "John": { + # Change john@example.com into real recipient's email + "email": "john@example.com", + # Change Month and Day of a birthday + "birthday": datetime.date(today.year, 12, 31), + "attachment": "/path/to/john_card.pdf" # Enter absolute path to a file if needed + }, + "Jane": { + "email": "jane@example.com", + "birthday": datetime.date(today.year, 8, 22), + "attachment": None # 添付ファイルなし + }, + # Add other recipient from here + } +# If you want to change the content, modify below +subject = f"Happy birthday {recipient_name}!" +body = f"""Dear {recipient_name}, + +Wishing you a very happy birthday filled with love, laughter, and joy! May all your dreams and aspirations come true. +Looking forward to seeing you soon! Have a fantastic birthday! + +Best wishes, {your_name}""" +# --------------------------------------------------------------------------^^^ + + From d19cfd12b38c2f43a4b4713061e06586e62c243b Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sat, 21 Sep 2024 21:30:58 +0900 Subject: [PATCH 3/9] Added README --- gmail_birthday_sender/README.md | 76 +++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 gmail_birthday_sender/README.md diff --git a/gmail_birthday_sender/README.md b/gmail_birthday_sender/README.md new file mode 100644 index 000000000..947717611 --- /dev/null +++ b/gmail_birthday_sender/README.md @@ -0,0 +1,76 @@ +# Gmail Birthday Sender + +This script automatically sends birthday wishes via Gmail. +You just need to enter your information at beginning. + +>[!WARNING] +>This script lacks strong security for your email + +## Requirements + +- Python 3 + +## Instructions + +1. Create google account +2. Turn on [2-Step Verification](https://support.google.com/accounts/answer/185839) +3. Create [an application password](https://support.google.com/accounts/answer/185833#zippy=%2Cremove-app-passwords) + +### Enter your information in `main.py` + +- Enter your gmail account, your name and application password + +```py +your_name = "your_real_name" +your_email = "your_account@gmail.com" +password = "your_gmailpassword" +``` + +- Enter recipient's information here + +```py + # Change John to recipient's name + "John": { + # Change john@example.com into real recipient's email + "email": "john@example.com", + # Change Month and Day of a birthday + "birthday": datetime.date(1995, 12, 31), +``` + +(Example) +Name: John +Email: john@example.com, +Year, Month and Day of a birthday: 1995, 12, 31 + +- Enter absolute path to a attachement file if you want + +```py + "attachment": "/path/to/john_card.pdf" + }, +``` + +If you don't need, write `None` instead + +```py + "attachment": None +``` + +### Run the script + +After you're done installing Python and pip, run the following command from your terminal to install the requirements from the same folder (directory) of the project. + +```bash +pip install -r requirements.txt +``` + +After satisfying all the requirements for the project, Open the terminal in the project folder and run + +```bash +python dictionary.py +``` + +or + +```bash +python3 dictionary.py +``` From 612bb961ad174d5a83c45e73b08bfc9b5537d59d Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sat, 21 Sep 2024 21:31:11 +0900 Subject: [PATCH 4/9] Added main script --- gmail_birthday_sender/main.py | 101 +++++++++++++++++++++++++--------- 1 file changed, 76 insertions(+), 25 deletions(-) diff --git a/gmail_birthday_sender/main.py b/gmail_birthday_sender/main.py index 42dc553e7..eabdbda53 100644 --- a/gmail_birthday_sender/main.py +++ b/gmail_birthday_sender/main.py @@ -1,44 +1,95 @@ import yagmail +import datetime import schedule import time -import datetime import os +from typing import Optional -# Input your information by chnaging string part from here--------------------- - -email = 'your_account@gmail.com' # used for email body (e.g. sincerely ) -your_name = 'your_real_name' -recipient_name = 'John Doe' +your_name = "your_real_name" +# Input your information by chnaging string part from here--------------------- +your_email = "your_account@gmail.com" # Your application password can be used only after 2-step verification -password = 'your_gmailpassword' +password = "your_gmailpassword" + +# Enter recipient information below -# Recipient's birthday information -today = datetime.date.today() birthday_list = { # Change John to recipient's name "John": { # Change john@example.com into real recipient's email "email": "john@example.com", - # Change Month and Day of a birthday - "birthday": datetime.date(today.year, 12, 31), - "attachment": "/path/to/john_card.pdf" # Enter absolute path to a file if needed - }, + # Change Year, Month and Day of a birthday + "birthday": datetime.date(1995, 12, 31), + # Enter an absolute path to attachement file + "attachment": "/path/to/john_card.pdf", + }, "Jane": { "email": "jane@example.com", - "birthday": datetime.date(today.year, 8, 22), - "attachment": None # 添付ファイルなし - }, - # Add other recipient from here - } -# If you want to change the content, modify below -subject = f"Happy birthday {recipient_name}!" -body = f"""Dear {recipient_name}, + "birthday": datetime.date(2001, 8, 22), + "attachment": None, # 添付ファイルなし + }, # Add other recipient from a below line +} +# ----------------------------------------------------------------------------- + + +class BirthdaySender: + """This automatically sends birthday wishes via Gmail.""" + + def __init__(self, your_name, your_email, password) -> None: + self.your_name = your_name + self.sender_email = your_email + self.birthday_list = birthday_list + # for safer password storage + yagmail.register(your_email, password) + self.yag = yagmail.SMTP(your_email) + + def send_email( + self, name: str, to_email: str, attachment_path: Optional[str] = None + ) -> None: + """Include attachement to email file if it is needed""" + + # If you want to change the content, modify below---------------------- + subject = f"Happy birthday {name}!" + body = f"""Dear {name}, + + Wishing you a very happy birthday filled with love, laughter, and joy! + May all your dreams and aspirations come true. + Looking forward to seeing you soon! Have a fantastic birthday! + + Best wishes, {self.your_name}""" + # --------------------------------------------------------------------- + + email_params = {"to": to_email, "subject": subject, "contents": body} + + if attachment_path and os.path.exists(attachment_path): + email_params["attachments"] = attachment_path + print(f"{attachment_path} was included") + + try: + self.yag.send(**email_params) + print(f"Sent to {name}") + except Exception as e: + print(f"Failed to send email to {name}, Error: {e}") + + def send_email_if_birthday(self) -> None: + """Call send_email if today is birthday""" + today = datetime.date.today() + + for name, info in self.birthday_list.items(): + birthday = info["birthday"] + if today.month == birthday.month and today.day == birthday.day: + return self.send_email(name, info["email"], info["attachment"]) + + def run(self): + return self.send_email_if_birthday() -Wishing you a very happy birthday filled with love, laughter, and joy! May all your dreams and aspirations come true. -Looking forward to seeing you soon! Have a fantastic birthday! -Best wishes, {your_name}""" -# --------------------------------------------------------------------------^^^ +if __name__ == "__main__": + birthday_sender = BirthdaySender(your_name, your_email, password) + schedule.every().day.at("07:00").do(birthday_sender.run) + while True: + schedule.run_pending() + time.sleep(1) From f362dea39196435c2ea67af2601a6c22f06de1d4 Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sun, 22 Sep 2024 08:24:03 +0900 Subject: [PATCH 5/9] Modified README --- gmail_birthday_sender/README.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gmail_birthday_sender/README.md b/gmail_birthday_sender/README.md index 947717611..750834fcb 100644 --- a/gmail_birthday_sender/README.md +++ b/gmail_birthday_sender/README.md @@ -3,8 +3,8 @@ This script automatically sends birthday wishes via Gmail. You just need to enter your information at beginning. ->[!WARNING] ->This script lacks strong security for your email +> [!WARNING] +> This script lacks strong security for your email ## Requirements @@ -55,6 +55,19 @@ If you don't need, write `None` instead "attachment": None ``` +- If you want to change the subject and body of email, modify below string + +```py + subject = f"Happy birthday {name}!" + body = f"""Dear {name}, + + Wishing you a very happy birthday filled with love, laughter, and joy! + May all your dreams and aspirations come true. + Looking forward to seeing you soon! Have a fantastic birthday! + + Best wishes, {self.your_name}""" +``` + ### Run the script After you're done installing Python and pip, run the following command from your terminal to install the requirements from the same folder (directory) of the project. From 49474b33bbdc9419a823ec1f7da78733334b99a4 Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sun, 22 Sep 2024 08:24:51 +0900 Subject: [PATCH 6/9] Fixed comment --- gmail_birthday_sender/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gmail_birthday_sender/main.py b/gmail_birthday_sender/main.py index eabdbda53..8623907de 100644 --- a/gmail_birthday_sender/main.py +++ b/gmail_birthday_sender/main.py @@ -5,9 +5,9 @@ import os from typing import Optional +# Input your information by chnaging string part from here--------------------- # used for email body (e.g. sincerely ) your_name = "your_real_name" -# Input your information by chnaging string part from here--------------------- your_email = "your_account@gmail.com" # Your application password can be used only after 2-step verification password = "your_gmailpassword" From e26458b7bafc643bfaf556ca1e90e35e8c54d977 Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sun, 22 Sep 2024 08:32:49 +0900 Subject: [PATCH 7/9] Added keyring needed for yagmail.register --- gmail_birthday_sender/requirements.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gmail_birthday_sender/requirements.txt b/gmail_birthday_sender/requirements.txt index e361fb692..79d025dc4 100644 --- a/gmail_birthday_sender/requirements.txt +++ b/gmail_birthday_sender/requirements.txt @@ -3,10 +3,18 @@ certifi==2024.8.30 charset-normalizer==3.3.2 cssselect==1.2.0 cssutils==2.11.1 +flake8==7.1.1 idna==3.8 +jaraco.classes==3.4.0 +jaraco.context==6.0.1 +jaraco.functools==4.0.2 +keyring==25.4.1 lxml==5.3.0 +mccabe==0.7.0 more-itertools==10.5.0 premailer==3.10.0 +pycodestyle==2.12.1 +pyflakes==3.2.0 requests==2.32.3 schedule==1.2.2 urllib3==2.2.2 From e168512d498cf95470e0476c9d9424ae79c3b7d4 Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sun, 22 Sep 2024 09:30:58 +0900 Subject: [PATCH 8/9] Added exception outuput in scheduling task --- gmail_birthday_sender/main.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gmail_birthday_sender/main.py b/gmail_birthday_sender/main.py index 8623907de..796b25d0b 100644 --- a/gmail_birthday_sender/main.py +++ b/gmail_birthday_sender/main.py @@ -90,6 +90,11 @@ def run(self): schedule.every().day.at("07:00").do(birthday_sender.run) - while True: - schedule.run_pending() - time.sleep(1) + try: + while True: + schedule.run_pending() + time.sleep(1) + except KeyboardInterrupt: + print("Birthday sending stopped") + except Exception as e: + print(f"An error: {e}") From df9fc8663f2197309ddaa680867348f4923e3e8e Mon Sep 17 00:00:00 2001 From: quinn-sasha Date: Sun, 22 Sep 2024 09:54:27 +0900 Subject: [PATCH 9/9] Adjusted README into template --- gmail_birthday_sender/README.md | 15 ++++++++++++--- .../example_of_birthday_sender.png | Bin 0 -> 40955 bytes 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 gmail_birthday_sender/example_of_birthday_sender.png diff --git a/gmail_birthday_sender/README.md b/gmail_birthday_sender/README.md index 750834fcb..16f15e4fe 100644 --- a/gmail_birthday_sender/README.md +++ b/gmail_birthday_sender/README.md @@ -3,9 +3,6 @@ This script automatically sends birthday wishes via Gmail. You just need to enter your information at beginning. -> [!WARNING] -> This script lacks strong security for your email - ## Requirements - Python 3 @@ -87,3 +84,15 @@ or ```bash python3 dictionary.py ``` + +> [!IMPORTANT] +> Script should be run anytime to send birthday wishes automatically + +## Output + +![Example of output](example_of_birthday_sender.png) + +## Disclaimers, if any + +> [!WARNING] +> This script lacks strong security for your email diff --git a/gmail_birthday_sender/example_of_birthday_sender.png b/gmail_birthday_sender/example_of_birthday_sender.png new file mode 100644 index 0000000000000000000000000000000000000000..32d6812d4bb650a78c55dac37fce29eee00e6ada GIT binary patch literal 40955 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 nr2kLrb