我試圖在已經寫好的電子郵件上啓動Mac OS(和其他操作系統,但我只有Mac有問題)的默認郵件應用程序。電子郵件的正文包含HTML。在Mac OS上用html打開默認的郵件應用程序
body = "<span style='font-weight:bold'>Title : </span>{}</br> \
<span style='font-weight:bold'>Journal : </span>{}</br></br> \
<span style='font-weight:bold'>Abstract : </span></br></br>{}"
body = body.format(title, journal, abstract)
url = "mailto:?subject={}&body={}"
url = url.format(title, body)
if sys.platform=='win32':
os.startfile(url)
elif sys.platform=='darwin':
subprocess.Popen(['open', url])
else:
# Create an url to be opened with a mail client
try:
subprocess.Popen(['xdg-email', url])
except OSError:
self.l.error("shareByEmail: OSError")
在windows和linux上,此代碼只是打開默認郵件應用程序,並填充所有字段。電子郵件已準備好發送,並且html標籤不可見(標籤正確轉換爲格式化文本)。
但在Mac OS上,電子郵件的正文是一個簡單的文本,html標籤完全可見(文本未格式化)。
這是郵件客戶端的設置問題嗎?它應該發生嗎?我們可以在Mac OS上的電子郵件正文中編寫HTML嗎?
我不得不提到的幾件事情:
我不會在我的電腦上測試代碼(我不擁有一臺Mac),所以我沒有設置郵件應用自己
的Mac OS版本,我在測試代碼是優山美地,郵件應用程序是默認的(未雷鳥)
我不能使用WebBrowser模塊
好的,謝謝你的回答。我知道我不能在mailto的主體中使用HTML。但我不想使用任何複雜的解決方案,如蘋果腳本或任何其他。我會簡化我的身體,這是一個更可接受的解決方案。我假設我仍然可以在mailto的正文字段中傳遞一個URL和幾行純文本,對吧? – Rififi
@Rififi:是的,只要「少」與你在這裏的順序相同,它就在'Mail.app'將從'mailto'中讀取的限制以及OS X可以在命令行中適用的限制。 (如果你想讓音樂變得更大,你需要查找所有相關版本的限制,或者針對所有相關版本進行測試,但這絕對夠小。) – abarnert