質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

Q&A

解決済

1回答

2811閲覧

【Mac M1環境】Pythonで開発中ですが、win32comに相当するモジュールはありますか?

yujin1202

総合スコア56

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

0グッド

0クリップ

投稿2022/06/17 03:03

編集2022/06/17 03:14

<質問>
環境は、Mac M1です。

Outlookを操作して、会社メーラーから、Pythonで自動メール送信をする方法を考案中です。途中まで完成済みですが、最後のOutlookの起動 → 新規メール送信部分で詰まっております。
Windowsならば、win32comを使えばできる処理ですが、Macではwin32comは勿論、使えません。
同じ様な課題をお抱えの方は、どのように解決しましたか?(Win32comみたいのが、Macにあれば良いのですが。)

尚、下記別解は使えないことを確認済です。
Pythonでメールを送信(Outlook)
https://qiita.com/aj2727/items/81e5d67cbcbf7396e392
フリーメール(hotmail.com)から、上リンクの処理が可能であることは確認しました。しかしながら、会社メーラー(これもOutlookですが。)では、色々とセキュリティー設定が厳しくて、出来ません。(SMTP port番号をハイナンバーとかに変更していると思われます。勿論、詳細は不明です。)

_

<質問の背景>
下記の様なリストがあるとします。
イメージ説明

一番上の山田さんから、一通ずつメール送信をしようとしております。

山田様、 こんにちは! あなたのメールは yamada@gggmail.com ですね。

実際には、数百人に送信する必要がありますので、Pythonで自動化をして、楽をしたいと思っております。
(尚、「手動のBCC送信ではダメなのか?」と周りからは言われたのですが、BCCメールは、経験上、誰も読まないのを知っているので、個別メールにしたいと思っております。)

下記の様のコードを書くと、上記文面が、<宛先様>名と共に、自動で出てくる所まで確認済です。
繰り返しになりますが、詰まっているのは、「Mac M1にインストール済みのOutlookメーラーを立ち上げて、新規メール作成を開いて、そこに宛先(下記コードでは、{pic})をセットして、送信ボタンを押す」事です。尚、Windows OSなら、Win32comを使って出来ることは確認済みです。

from time import sleep import codecs def totext(): wb1= px.load_workbook("list0615.xlsx",data_only=True) ws1=wb1.worksheets[0] ws1max=ws1.max_row-1 print(ws1max) font1 = Font(color='00FF0000', size=20, italic=True, bold=True) font2 = Font(color='000000FF', size=12, italic=False, bold=False) font3 = Font(color='00FF0000', size=10, italic=False, bold=True) for i1 in range(ws1max): val1a=ws1.cell(row=i1+2,column=2).value val3a=ws1.cell(row=i1+2,column=3).value ope=val1a pic=val3a print(f'{ope}様、\n\nこんにちは!\n', file=codecs.open('samplex.txt', 'a', 'utf-8')) print(f'あなたのメールは {pic} ですね。\n \n', file=codecs.open('samplex.txt', 'a', 'utf-8')) i1=i1+1 print("Regards", file=codecs.open('samplex.txt', 'a', 'utf-8'))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Apple Script 経由で実行するしかないかもしれないですね。

applescript
appscript
で、Apple Script を利用して実行できないでしょうか。

投稿2022/06/17 03:31

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yujin1202

2022/06/17 04:04

早速、ありがとうございます。 applescriptは、存在自体を知りませんでした。→ https://agency-star.co.jp/column/applescript まだ、検証開始したばかりですが、下記コードが、Macのスクリプトエディタで動作するのを確認しました。 もう少し検証してみます。ありがとうございました。 ``` tell application "Microsoft Outlook" set theMessage to make new outgoing message with properties {sender:{name:"My Name", address:"demo@demo.com"}, subject:"test", plain text content:"Hallo"} tell theMessage make new to recipient with properties {email address:{address:"test@test.com"}} end tell send theMessage end tell ```
yujin1202

2022/06/17 06:46 編集

applescriptで行けそうな事が確認できました。 例えば、下記のコードを動かすと、連続で個別メールが送付できます。 ただ、本文を、「山田様」みたいに、宛先だけ変えて作成したいのですが、それがどうしてもできません。 もし、やり方をご存知でしたら、教えて頂きたく。 ``` tell application "Microsoft Outlook" set srcFile to ("/Users/xxxx_yyy/Desktop/code/address1.txt") as text set lns to paragraphs of (read srcFile as «class utf8») repeat with ln in lns set the clipboard to ln set theMessage to make new outgoing message with properties {subject:"this is a test", plain text content:"Hello"} make new recipient with properties {email address:{address:ln}} at end of to recipients of theMessage send theMessage end repeat end tell ```
yujin1202

2022/06/17 07:50

ご回答をありがとうございます。 7割方解決し掛かっていると思うのですが、質問の内容が変わってきたので、上記質問を閉めた上で、新たな質問をさせて頂きます。https://teratail.com/questions/jjxdf0waahh7ld
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問