您的位置:

免费匿名SMTP服务器:Python轻松实现电子邮件发送

随着数字化的发展,电子邮件在人们的生活中扮演着越来越重要的角色,而邮件服务器是实现邮件传递的重要基础。大多数邮件服务器在发送邮件时都需要进行SMTP验证,但是在某些特定情况下,如测试或发送匿名邮件,我们需要一些可以免费使用并且不需要SMTP验证的邮件服务器,而这篇文章将为你介绍如何通过 Python 来轻松实现电子邮件的发送。下面将分多个方面进行阐述。

一、选择邮件服务器

在选择邮件服务器时,需要兼顾可用性和安全性。虽然有很多邮件服务器可以免费使用,但是需要进行SMTP验证,所以在本文中,我们将使用已知的可靠而且能够免费使用的匿名邮件服务器,如下表所示:

邮箱地址                      服务器地址

tempr.email                  mail.tempr.email
5ymail.com                   smtp.5ymail.com
emkei.cz                     smtp.emkei.cz
mytrashmail.com              smtp.mytrashmail.com

此外还需要注意的是,邮件服务器的域名必须被 IETF (Internet Engineering Task Force) 批准为公共域名,否则邮件会被视为垃圾邮件而无法正常发送。

二、Python实现邮件发送

Python提供了 smtplib 模块来发送邮件,下面是一个简单的 Python 程序,可以将电子邮件发送给指定的收件人。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_email(smtp_server, username, password, sender, receiver, subject, message):
    msg = MIMEText(message, 'html', 'utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    msg['From'] = Header(sender, 'utf-8')
    msg['To'] = Header(receiver, 'utf-8')

    server = smtplib.SMTP(smtp_server)
    server.login(username, password)
    server.sendmail(sender, [receiver], msg.as_string())
    server.quit()

if __name__ == '__main__':
    smtp_server = 'smtp.mytrashmail.com'
    username = ''
    password = ''
    sender = ''
    receiver = ''
    subject = 'Test email'
    message = '

Hello World!

' send_email(smtp_server, username, password, sender, receiver, subject, message)

以上是一个基本的模板,可以将这个模板分别适配到不同的邮件服务器上。如果需要发送的邮件正文含有HTML标签,可以修改MIMEText的contentType为‘html’。

三、在Python中实现添加附件功能

有时候我们需要在电子邮件中添加附件,例如一些图片或者文档。下面是一个简单的 Python 程序,在电子邮件中添加文本文件作为附件。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header

def send_email_with_attachments(smtp_server, username, password, sender, receiver, subject, message, files):
    msg = MIMEMultipart()
    msg['Subject'] = Header(subject, 'utf-8')
    msg['From'] = Header(sender, 'utf-8')
    msg['To'] = Header(receiver, 'utf-8')

    msg.attach(MIMEText(message, 'html', 'utf-8'))

    if files:
        for f in files:
            with open(f, 'rb') as file:
                attachment = MIMEApplication(file.read())
                attachment.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', f.split('/')[-1]))
                msg.attach(attachment)

    server = smtplib.SMTP(smtp_server)
    server.login(username, password)
    server.sendmail(sender, [receiver], msg.as_string())
    server.quit()

if __name__ == '__main__':
    smtp_server = 'smtp.mytrashmail.com'
    username = ''
    password = ''
    sender = ''
    receiver = ''
    subject = 'Test email'
    message = '

Hello World!

' files = ['/path/to/file.txt'] send_email_with_attachments(smtp_server, username, password, sender, receiver, subject, message, files)

以上程序将每个附件文件作为 MIMEApplication 的实例,通过在头部中指定"Content-Disposition: attachment"字段,将文件添加为附件。在此之前,我们还需安装python-magic,并在系统中进行必要的依赖安装。

结语

这篇文章介绍了通过 Python 实现轻松发送电子邮件的方法以及如何在邮件中添加附件。值得注意的是,邮件发送具有一定的风险,应严格按照相关法律法规和道德准则进行操作,遵循企业和社会的规范。