一、Python的smtplib库
要在服务器上使用Python发送邮件,我们需要使用Python的smtplib库。它提供了一个SMTP类,可以用来连接到SMTP服务器并发送邮件。下面是一个基本的使用smtplib库发送邮件的代码示例:
import smtplib sender_email = '你的发件人邮箱' receiver_email = '你的收件人邮箱' password = '你的发件人邮箱密码' message = '邮件正文' server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message) server.quit()
这段代码首先定义了发件人、收件人和发件人邮箱密码,然后生成了邮件正文。接着创建了一个SMTP对象并通过SMTP服务器登录发件人邮箱。最后使用SMTP的sendmail()方法发送邮件并退出SMTP。
二、发送HTML邮件
我们还可以使用Python发送HTML格式的邮件。下面是一个将HTML代码作为邮件正文发送的示例:
import smtplib from email.mime.text import MIMEText sender_email = '你的发件人邮箱' receiver_email = '你的收件人邮箱' password = '你的发件人邮箱密码' html_message = '<html><body><p>这是一封<b>HTML</b>邮件!</p></body></html>' message = MIMEText(html_message, 'html') message['From'] = sender_email message['To'] = receiver_email message['Subject'] = 'HTML Test Email' server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message.as_string()) server.quit()
这段代码定义了与前面相同的发件人、收件人和发件人邮箱密码,然后生成了HTML代码。通过email库中的MIMEText类将HTML代码转换为消息对象。接着设置消息的发送者、接收者和主题。最后通过SMTP发送邮件并退出SMTP。
三、发送带附件的邮件
我们还可以使用Python发送带有附件的邮件。下面是一个将单个文件作为附件添加到邮件中并发送的示例:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication sender_email = '你的发件人邮箱' receiver_email = '你的收件人邮箱' password = '你的发件人邮箱密码' message = MIMEMultipart() message['From'] = sender_email message['To'] = receiver_email message['Subject'] = 'Attachment Test Email' text = '这是一封带附件的邮件!' message.attach(MIMEText(text)) # 添加附件 with open('/path/to/file', mode='rb') as attachment: att = MIMEApplication(attachment.read()) att['Content-Disposition'] = 'attachment; filename="file.pdf"' message.attach(att) server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message.as_string()) server.quit()
这段代码也定义了与前面相同的发件人、收件人和发件人邮箱密码。创建了一个MIMEMultipart对象并设置了消息的发送者、接收者和主题。然后添加正文并将要附加的文件读入,创建一个MIMEApplication对象,并将文件设置为对象的内容。设置附件的文件名并将其添加到消息对象中。最后通过SMTP发送邮件并退出SMTP。
四、发送带图片的邮件
我们可以使用Python发送带有图片的邮件。下面是一个发送带有图片(嵌入式)的邮件的示例:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage sender_email = '你的发件人邮箱' receiver_email = '你的收件人邮箱' password = '你的发件人邮箱密码' message = MIMEMultipart() message['From'] = sender_email message['To'] = receiver_email message['Subject'] = 'Image Test Email' html = '<html><body><p>这是一封带有<b>图片</b>的邮件!</p><p><img src="cid:image1"></p></body></html>' message.attach(MIMEText(html, 'html')) # 添加图片 with open('image.jpg', 'rb') as f: img_data = f.read() image = MIMEImage(img_data, name='image.jpg') image.add_header('Content-ID', '<image1>') message.attach(image) server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message.as_string()) server.quit()
这段代码也定义了与前面相同的发件人、收件人和发件人邮箱密码。创建了一个MIMEMultipart对象并设置了消息的发送者、接收者和主题。然后添加HTML代码并将要嵌入的图片读入,创建一个MIMEImage对象,并将图片设置为对象的内容。设置Content-ID标头并将其添加到消息对象中。最后通过SMTP发送邮件并退出SMTP。