python 发送邮件
        
                
                    
                    有勇气的牛排
                
            
                    
                    553
                
            
                    
                    
                    Python
                    
                
            
                    
                    2023-05-18 20:52:58
                
            
        
        
        
        1. 可带图片附件
from email import encoders
from email.header import Header
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from smtplib import SMTP
def send_email(receivers, topic, imageName,content, sender, password):
    
    for receiver in receivers:
        try:
            msg = MIMEMultipart()
            msg['From'] = Header(sender, 'utf-8')  
            msg['To'] = Header(receiver, 'utf-8')
            msg['Subject'] = Header(topic, 'utf-8')
            msg.attach(MIMEText(content, 'plain', 'utf-8'))  
            with open(imageName+'.png', 'rb') as f:
                mime = MIMEBase('image', 'png', filename='Hello.png')  
                mime.add_header('Content-Disposition', 'attachment', filename=imageName+'.png')
                mime.set_payload(f.read())  
                encoders.encode_base64(mime)  
                msg.attach(mime)  
                server = SMTP('smtp.qq.com', 25)
                server.login(sender, password)
                server.sendmail(sender, receiver, msg.as_string())
                print('发送成功!')
        except Exception as error:
            print(error)
            print('发送失败')
            continue
if __name__ == '__main__':
    sender = '666@qq.com'
    password = 'xp6'
    receiver = ['6@qq.com']
    topic = '邮件测试'
    content = '邮件测试,请勿回复'
    imageName = '1'  
    send_email(receiver, topic, imageName,content, sender, password)
2. 仅发送文本
import random, time
def send_email(SMTPServer, sender, passwd, message1, title, receiver):
    
    import smtplib
    
    from email.mime.text import MIMEText
    
    
    
    
    
    
    
    message = message1
    
    msg = MIMEText(message)
    
    msg["Subject"] = title
    
    msg["From"] = sender
    
    mailServer = smtplib.SMTP(SMTPServer, 25)
    
    mailServer.login(sender, passwd)
    
    mailServer.sendmail(sender, receiver, msg.as_string())
    
    mailServer.quit()
    return 0
def email():
    
    SMTPServer = "smtp.qq.com"
    sender = "853386196@qq.com"
    passwd = "wesfwzyfrwfabeae"
    message = "【九天创想 - 920社区】您的验证码:109443,该验证码5分钟内有效。"
    title = '920登录验证'
    receiver = ['1809296387@qq.com','603188080@qq.com']
    send_email(SMTPServer, sender, passwd, message, title, receiver)
email()
第三方库
pip install yagmail
import yagmail
yag = yagmail.SMTP( user="85336@qq.com", password="ygow", host='smtp.qq.com')
contents = ['This is the body, and here is just text http://somedomain/image.png',
            'You can find an audio file attached.', '/local/path/song.mp3']
yag.send('180929@qq.com', '发送附件', contents, ["1.png"])
print('发送成功')
                <h2><a id="1__0"></a>1. 可带图片附件</h2>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">from</span> email <span class="hljs-keyword">import</span> encoders
<span class="hljs-keyword">from</span> email.header <span class="hljs-keyword">import</span> Header
<span class="hljs-keyword">from</span> email.mime.base <span class="hljs-keyword">import</span> MIMEBase
<span class="hljs-keyword">from</span> email.mime.multipart <span class="hljs-keyword">import</span> MIMEMultipart
<span class="hljs-keyword">from</span> email.mime.text <span class="hljs-keyword">import</span> MIMEText
<span class="hljs-keyword">from</span> smtplib <span class="hljs-keyword">import</span> SMTP
<span class="hljs-keyword">def</span> <span class="hljs-title function_">send_email</span>(<span class="hljs-params">receivers, topic, imageName,content, sender, password</span>):
    <span class="hljs-comment"># 自己填好相关信息</span>
    <span class="hljs-keyword">for</span> receiver <span class="hljs-keyword">in</span> receivers:
        <span class="hljs-keyword">try</span>:
            msg = MIMEMultipart()
            msg[<span class="hljs-string">'From'</span>] = Header(sender, <span class="hljs-string">'utf-8'</span>)  <span class="hljs-comment"># 编辑邮件头</span>
            msg[<span class="hljs-string">'To'</span>] = Header(receiver, <span class="hljs-string">'utf-8'</span>)
            msg[<span class="hljs-string">'Subject'</span>] = Header(topic, <span class="hljs-string">'utf-8'</span>)
            msg.attach(MIMEText(content, <span class="hljs-string">'plain'</span>, <span class="hljs-string">'utf-8'</span>))  <span class="hljs-comment"># 把正文附在邮件上</span>
            <span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(imageName+<span class="hljs-string">'.png'</span>, <span class="hljs-string">'rb'</span>) <span class="hljs-keyword">as</span> f:
                mime = MIMEBase(<span class="hljs-string">'image'</span>, <span class="hljs-string">'png'</span>, filename=<span class="hljs-string">'Hello.png'</span>)  <span class="hljs-comment"># 创建表示附件的MIMEBase对象,重新命名为test.png</span>
                mime.add_header(<span class="hljs-string">'Content-Disposition'</span>, <span class="hljs-string">'attachment'</span>, filename=imageName+<span class="hljs-string">'.png'</span>)
                mime.set_payload(f.read())  <span class="hljs-comment"># 读取附件内容</span>
                encoders.encode_base64(mime)  <span class="hljs-comment"># 对附件Base64编码</span>
                msg.attach(mime)  <span class="hljs-comment"># 把附件附在邮件上</span>
                server = SMTP(<span class="hljs-string">'smtp.qq.com'</span>, <span class="hljs-number">25</span>)
                server.login(sender, password)
                server.sendmail(sender, receiver, msg.as_string())
                <span class="hljs-built_in">print</span>(<span class="hljs-string">'发送成功!'</span>)
        <span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> error:
            <span class="hljs-built_in">print</span>(error)
            <span class="hljs-built_in">print</span>(<span class="hljs-string">'发送失败'</span>)
            <span class="hljs-keyword">continue</span>
<span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
    sender = <span class="hljs-string">'666@qq.com'</span>
    password = <span class="hljs-string">'xp6'</span>
    receiver = [<span class="hljs-string">'6@qq.com'</span>]
    topic = <span class="hljs-string">'邮件测试'</span>
    content = <span class="hljs-string">'邮件测试,请勿回复'</span>
    imageName = <span class="hljs-string">'1'</span>  <span class="hljs-comment"># 附件 图片名字</span>
    send_email(receiver, topic, imageName,content, sender, password)
</code></div></pre>
<h2><a id="2__48"></a>2. 仅发送文本</h2>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">import</span> random, time
<span class="hljs-comment"># 发送邮件 1</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">send_email</span>(<span class="hljs-params">SMTPServer, sender, passwd, message1, title, receiver</span>):
    <span class="hljs-comment">#发邮件的库</span>
    <span class="hljs-keyword">import</span> smtplib
    <span class="hljs-comment">#邮件文本</span>
    <span class="hljs-keyword">from</span> email.mime.text <span class="hljs-keyword">import</span> MIMEText
    <span class="hljs-comment">#SMTP服务器</span>
    <span class="hljs-comment"># SMTPServer = "smtp.qq.com"</span>
    <span class="hljs-comment">#发邮件的地址</span>
    <span class="hljs-comment"># sender = "853386196@qq.com"</span>
    <span class="hljs-comment">#发送者邮箱的密码</span>
    <span class="hljs-comment"># passwd = "bqnnmmtaillgbfcb"</span>
    <span class="hljs-comment">#设置发送的内容</span>
    message = message1
    <span class="hljs-comment">#转换成邮件文本</span>
    msg = MIMEText(message)
    <span class="hljs-comment">#标题 主题</span>
    msg[<span class="hljs-string">"Subject"</span>] = title
    <span class="hljs-comment">#发送者</span>
    msg[<span class="hljs-string">"From"</span>] = sender
    <span class="hljs-comment">#创建SMTP服务器</span>
    mailServer = smtplib.SMTP(SMTPServer, <span class="hljs-number">25</span>)
    <span class="hljs-comment">#登陆邮箱</span>
    mailServer.login(sender, passwd)
    <span class="hljs-comment">#发送邮件</span>
    mailServer.sendmail(sender, receiver, msg.as_string())
    <span class="hljs-comment">#退出邮箱</span>
    mailServer.quit()
    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>
<span class="hljs-comment"># 发送邮件 1</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">email</span>():
    <span class="hljs-comment">#SMTP服务器</span>
    SMTPServer = <span class="hljs-string">"smtp.qq.com"</span>
    sender = <span class="hljs-string">"853386196@qq.com"</span>
    passwd = <span class="hljs-string">"wesfwzyfrwfabeae"</span>
    message = <span class="hljs-string">"【九天创想 - 920社区】您的验证码:109443,该验证码5分钟内有效。"</span>
    title = <span class="hljs-string">'920登录验证'</span>
    receiver = [<span class="hljs-string">'1809296387@qq.com'</span>,<span class="hljs-string">'603188080@qq.com'</span>]
    send_email(SMTPServer, sender, passwd, message, title, receiver)
email()
</code></div></pre>
<h2><a id="_102"></a>第三方库</h2>
<pre><div class="hljs"><code class="lang-python">pip install yagmail
</code></div></pre>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">import</span> yagmail
<span class="hljs-comment">#链接邮箱服务器</span>
yag = yagmail.SMTP( user=<span class="hljs-string">"85336@qq.com"</span>, password=<span class="hljs-string">"ygow"</span>, host=<span class="hljs-string">'smtp.qq.com'</span>)
<span class="hljs-comment"># 邮箱正文</span>
contents = [<span class="hljs-string">'This is the body, and here is just text http://somedomain/image.png'</span>,
            <span class="hljs-string">'You can find an audio file attached.'</span>, <span class="hljs-string">'/local/path/song.mp3'</span>]
<span class="hljs-comment"># 发送邮件</span>
<span class="hljs-comment">#yag.send('taaa@126.com', 'subject', contents)</span>
<span class="hljs-comment"># 发给多个用户</span>
<span class="hljs-comment">#yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], 'subject', contents)</span>
<span class="hljs-comment"># 发附件</span>
yag.send(<span class="hljs-string">'180929@qq.com'</span>, <span class="hljs-string">'发送附件'</span>, contents, [<span class="hljs-string">"1.png"</span>])
<span class="hljs-built_in">print</span>(<span class="hljs-string">'发送成功'</span>)
</code></div></pre>
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
                
                
                
            
        
    
    
    
 
评论区