import requests
    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from datetime import datetime, timedelta
    
    # 1. NewsAPIを使用して10年前の今日のニュースを取得
    def get_news():
        # NewsAPIのAPIキー
        api_key = '08998da2d3314bd4ae78f2b02bab572b'  # ご自身のAPIキーを設定
    
        # 10年前の日付を計算
        date_10_years_ago = (datetime.now() - timedelta(days=365*10)).strftime('%Y-%m-%d')
        
        url = f'https://newsapi.org/v2/everything?q=*&from={date_10_years_ago}&to={date_10_years_ago}&apiKey={api_key}'
        
        response = requests.get(url)
        data = response.json()
        
        if data['status'] == 'ok' and data['totalResults'] > 0:
            # ニュース情報の要約を作成
            articles = data['articles']
            news_summary = "10年前の今日に起こった出来事:\n\n"
            
            for article in articles[:5]:  # 最初の5つの記事を取り上げる
                title = article['title']
                description = article['description']
                url = article['url']
                news_summary += f"タイトル: {title}\n説明: {description}\n詳細: {url}\n\n"
            
            return news_summary
        else:
            return "10年前の今日に関連するニュースが見つかりませんでした。"
    
    # 2. Outlookのメール送信
    def send_email(subject, body, to_email):
        from_email = ''  # Outlookのメールアドレス
        from_password = ''  # Outlookのアカウントパスワード
    
        msg = MIMEMultipart()
        msg['From'] = from_email
        msg['To'] = to_email
        msg['Subject'] = subject
    
        msg.attach(MIMEText(body, 'plain'))
    
        # OutlookのSMTPサーバー設定
        server = smtplib.SMTP('smtp-mail.outlook.com', 587)
        server.starttls()
        server.login(from_email, from_password)
        
        text = msg.as_string()
        server.sendmail(from_email, to_email, text)
        server.quit()
    
    # 3. メイン処理
    def main():
        # 10年前の今日のニュースを取得
        news_summary = get_news()
    
        # メールの件名と本文
        subject = "10年前の今日の出来事"
        body = news_summary
        
        # 送信先メールアドレス
        to_email = 'recipient_email@example.com'  # 受信者のメールアドレス
        
        # メール送信
        send_email(subject, body, to_email)
        print("メールが送信されました。")
    
if __name__ == '__main__': main() !DOCTYPE html>

説明

今日の10年前に起こった出来事をメールで教えてくれる。
ちょうど10年前にこんなことあったんだよとドヤ顔できるし、
話のネタにもなるので作りたいと思った。
だが、out lookのパスワードを何度打ち込んでも
プログラムが実行されず完成させることが出来なかった。

参考

chat gpt