python發送郵件簡單示例的簡單介紹

本文目錄一覽:

python的發送郵件代 import poplib # 輸入郵件地址, 口令和POP3伺服器地址

不是很理解,你是要把收郵件改成發郵件嗎?

發郵件用的是smtp服務,然後填的是smtp伺服器地址,然後是一個收件人地址

import smtplib

然後發郵件的示例代碼如下

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

 

my_sender=’429240967@qq.com’    # 發件人郵箱賬號

my_pass = ‘xxxxxxxxxx’              # 發件人郵箱密碼

my_user=’429240967@qq.com’      # 收件人郵箱賬號,我這邊發送給自己

def mail():

    ret=True

    try:

        msg=MIMEText(‘填寫郵件內容’,’plain’,’utf-8′)

        msg[‘From’]=formataddr([“FromRunoob”,my_sender])  # 括弧里的對應發件人郵箱昵稱、發件人郵箱賬號

        msg[‘To’]=formataddr([“FK”,my_user])              # 括弧里的對應收件人郵箱昵稱、收件人郵箱賬號

        msg[‘Subject’]=”菜鳥教程發送郵件測試”                # 郵件的主題,也可以說是標題

 

        server=smtplib.SMTP(“smtp.qq.com”, 25)  # 發件人郵箱中的SMTP伺服器,埠是25

        server.login(my_sender, my_pass)  # 括弧中對應的是發件人郵箱賬號、郵箱密碼

        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括弧中對應的是發件人郵箱賬號、收件人郵箱賬號、發送郵件

        server.quit()  # 關閉連接

    except Exception:  # 如果 try 中的語句沒有執行,則會執行下面的 ret=False

        ret=False

    return ret

 

ret=mail()

if ret:

    print(“郵件發送成功”)

else:

    print(“郵件發送失敗”)

python批量發送郵件–包括批量不同附件

小豬在公司做出納,乾的活卻包括了出納、會計、結算專員等工作,周末都要被無奈在家加班,主要還沒有加班費,簡直是被公司嚴重壓榨。每個月初都要給每個工長發預付款賬單郵件,月中髮結算款賬單。重複性機械工作。

一個及格線上的程序員,最起碼的覺悟就是將重複性的機械工作自動化,於是,在我花了一個多小時,幫她給一部分工長發了一次郵箱後,默默的回來寫了這個腳本。

所以,設計要點就是一個字—— 懶 。

恩,就醬。

經過我觀察,郵件內容分為兩種,這裡先說第一種,「結算款」:

(1) 郵件內容(content)不變,為固定的txt文本

(2) 附件(attch)為每個工長的結算賬單(excel文件.xlsx),此文件命名為總賬單中自動分割出來的名字(暫時不懂怎麼分割出來的=.=),格式為:

(3) 郵件主題(Subject)為附件名(不帶後綴名)

(4) 郵件接收對象(工長)的名單及其郵箱地址基本不變,偶爾變動

(5)

(1) 將工長及其郵箱地址存為CSV文件的兩列,python中將其讀取為字典形式,存儲以供後續查詢郵箱地址。

(2) 遍歷文件夾中的附件(.xlsx類型文件),對其進行兩種操作,一方面將其名字(不帶路徑和後綴)提取出來,作為郵件主題(Subject),並對Subject進一步劃分,得到其中的人名(工長);另一方面,將其傳入MIMEbase模塊中轉為郵件附件對象。

(3) 由上述得到的人名(name),在字典形式的通訊錄中,查找相應的地址(value),即為收件人名稱和地址

(4) 利用python中的email模塊和smtp模塊,登錄自己的郵箱賬號,再對每個附件,得到的收件人名和地址,添加附件,發送郵件。done

在設計過程中有幾點需要注意

(1) 有時一個郵件地址對應兩個人名,此時應該在CSV文件中分為兩行存儲,而不是將兩個人名存為同一個鍵;

(2)有賬單.xlsx文件,通訊錄里卻沒存儲此人記錄,程序應該列印提示沒有通訊記錄的人名,且不能直接退出,要保證員工看到此提示,此第一版程序還有解決此問題;

(3)此程序發送的郵件內容為純文本,若要求郵件內容有不同格式(如部分加粗,部分紅色),還有小部分需要每次更改的地方(如郵件內容包含當前月份),如何解決?(這就是第二種郵件內容,「預算款」);

(4)重名的,暫時還沒碰到,程序中也沒給出解決方案。

第一版到此,20180830,待更新

第二版更新,20180904

第三版更新,20180909

轉戰CSDN博客,更多博客見傳送門《 xiaozhou的博客主頁 》

如何在python程序中發郵件

比如我用自己的 139 郵箱 lucia_gaga@139.com

發送郵件到網易郵箱 也是我的辦公郵箱 lu.han@beebank.com

以下代碼調試通過:

# coding: utf-8

import smtplib

from email.mime.text import MIMEText

from email.header import Header

sender = ‘lucia_gaga@139.com’

receiver = ‘lu.han@beebank.com’

subject = ‘python email test’

smtpserver = ‘smtp.139.com’

username = ‘lucia_gaga@139.com’

password = ‘xxxxxxxx’

msg = MIMEText(‘你好 lucia 這是你的第一封 python 發出的郵件’, ‘text’, ‘utf-8’)  

# 中文需參數『utf-8’,單位元組字元不需要

msg[‘Subject’] = Header(subject, ‘utf-8’)

smtp = smtplib.SMTP()

smtp.connect(‘smtp.139.com’)

smtp.login(username, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()

運行結果:

如何用Python發郵件

一般最好有個smtp伺服器,比如說你在163註冊個郵箱,這樣可以用smtplib通過這個郵箱來發送。以下是示例:

#-*- coding:utf8 -*-

import smtplib

import email

import mimetypes

from email.MIMEMultipart import MIMEMultipart

from email.mime.text import MIMEText

mail_host=”smtp.163.com”

mail_user=”yourusername”

mail_pass=”yourpassword”

mail_postfix=”mail.163.com”

def sendmail(to_list,sub,con):

“””發送郵件

“””

# translation

me = mail_user+””+mail_user+”@”+mail_postfix+””

msg = MIMEMultipart(‘related’)

msg[‘Subject’] = email.Header.Header(sub,’utf-8′)

msg[‘From’] = me

msg[‘To’] = “;”.join(to_list)

msg.preamble = ‘This is a multi-part message in MIME format.’

msgAlternative = MIMEMultipart(‘alternative’)

msgText = MIMEText(con, ‘plain’, ‘utf-8’)

msgAlternative.attach(msgText)

msg.attach(msgAlternative)

try:

s = smtplib.SMTP()

s.connect(mail_host)

s.login(mail_user,mail_pass)

s.sendmail(me, to_list, msg.as_string())

s.quit()

except Exception,e:

return False

return True

if __name__ == ‘__main__’:

if sendmail([‘test@test.com’],”測試”,”測試”):

print “Success!”

else:

print “Fail!”

如果要不經過郵件系統直接發,通常會被當作垃圾郵件扔了,所以還是這樣吧。

Python向多人發送、抄送帶附件的郵件(含詳細代碼)

python要發送帶附件的郵件,首先要創建MIMEMultipart()實例,然後構造附件,如果有多個附件,可依次構造,最後使用smtplib.smtp發送。

步驟:

(1)設置伺服器所需信息(ps:部門郵箱密碼為授權碼,需自行登錄相應郵箱設置授權碼)

(2)設置email信息

(3)附件部分

(4)登錄郵箱並發送郵件

附上源碼:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243252.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:55
下一篇 2024-12-12 12:55

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論