python怎么安装sendmail

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么安装sendmail相关的知识,希望对你有一定的参考价值。

python发送邮件的介绍比较多,都是需要登录某个邮件服务商,有密码修改和频繁发送被限制的问题。这里介绍一下,调用本机linux自身sendmail服务发送邮件。不需要登录,发送邮件名可以是任意名字,没有限制。
1. 安装:
#yum install -y sendmail
2. 启动服务:
#service sendmail start
检查服务是否加入自启行列
#chkconfig --list |grep sendmail
3 python代码:

from email.mime.text import MIMEText
from subprocess import Popen, PIPE
import commands
def send_mail(sender, recevier, subject, html_content):
msg = MIMEText(html_content, 'html', 'utf-8')
msg["From"] = sender
msg["To"] = recevier
msg["Subject"] = subject
p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
p.communicate(msg.as_string())
send_mail("sender@xxxx.com","receive1@xxxx.com,receive2@xxxx.com","title", “mail_text”)
sender@xxx.com可以是任意邮箱名
receive1@xxxx.com是收邮件的邮箱
title是邮件标题
mail_text是邮件内容
可以结合其他介绍python发邮件的资料,发出更复杂的邮件
参考技术A

python发邮件需要掌握两个模块的用法,smtplib和email,这俩

模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。

smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

email模块主要负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

import smtplib

smtp = smtplib.SMTP() 
smtp.connect('smtp.163.com,25') 
smtp.login(username, password) 
smtp.sendmail(sender, receiver, msg.as_string()) 
smtp.quit()

参考技术B SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

Python创建 SMTP 对象语法如下:

import smtplib

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
参数说明:

host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。
参考技术C

Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

您需要下载适用于您使用平台的二进制代码,然后安装Python。

如果您平台的二进制代码是不可用的,你需要使用C编译器手动编译源代码。

编译的源代码,功能上有更多的选择性, 为python安装提供了更多的灵活性。。。

Sendmail python 文件发送邮件

1.使用python 写发邮箱代码:

def sendmail ():
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
    msg = MIMEText(邮件内容, plain, utf-8)
    msg[From] = formataddr(["发件人名", 发件人地址])
    msg[Subject] = "主题"

    server = smtplib.SMTP("发件人邮箱SMTP地址", 25)
    server.login("发件人邮箱地址", "发件人邮箱登录密码")
    server.sendmail(发件人地址, [送件人地址, ], msg.as_string())
    server.quit()
sendmail()

以上是关于python怎么安装sendmail的主要内容,如果未能解决你的问题,请参考以下文章

linux下多个sendmail服务器怎么互发邮件

Linux sendmail到底怎么往外发邮件

如何在Linux下安装Sendmail服务器软件的方法

5.30 电子邮件sendmail试验

linux邮件服务器如何安装

请问在WINDOWS平台下怎么实现LINUX下'/usr/sbin/sendmail'这个功能呢?