欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

公司内部发邮件 python 代码 我自己亲自做的 有大用 有大大用

此代码 在服务器上 能正常运行 ,但是在 本地 报错如下 

Traceback (most recent call last):

  File "C:\Users\shipingzhong\PycharmProjects\pythonProject\mail\send_mail2.py", line 37, in <module>

    server.quit()

    ^^^^^^

NameError: name 'server' is not defined

Mailer Error: Connection unexpectedly closed

那可能是 SMTP 服务器不允许本地这台电脑 relay(白名单问题)。

#!/usr/local/python3.10.4/bin/python3.10
#    
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

# 邮件内容    
from_addr = "aaaaa@bbbbb.com"    
password = "ccccccc"  # 如果服务器需要认证才会用    
to_addr = "aaaaa@bbbbb.com"    
smtp_server = "192.168.21.20"    
smtp_port = 25 

# 创建邮件正文    
msg = MIMEText("222222222", "plain", "utf-8")  # 第二个参数改成 "html" 就能发HTML格式
msg["Subject"] = "PHPMailer"    
msg["From"] = formataddr(("aaaa", from_addr))
msg["To"] = formataddr(("test", to_addr))    
try:
    # 建立连接    
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.set_debuglevel(1)  # 打印调试信息,相当于 PHP 里的 $mail->SMTPDebug = 3    
    #server.starttls()  # 相当于 SMTPSecure = "starttls"    
    # 如果SMTP需要验证,就用 login    
    # 你的 PHP 里 $mail->SMTPAuth = false, 所以可能不需要登录    
    # 如果报错,可以把这两行注释掉    
    # server.login(from_addr, password) 
    server.sendmail(from_addr, [to_addr], msg.as_string())
    print("Message sent!")
except Exception as e:
    print("Mailer Error:", e)
finally:
    server.quit()


普通分类: