Linux发送邮件
文章目录
说起发送邮件,我们第一反应就是写代码实现一个,其实在linux里面,无需借助java、c等重型编程语言就能轻松实现发送邮件的需求,下面介绍两种发邮件方法:
一、linux原生邮件服务
增加配置
/etc/mail.rc中追加
set from=发送邮箱
set smtp="smtps://smtp.liming.pub:465"
set smtp-auth-user="用户@xxx.com"
set smtp-auth-password="密码"
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
测试发送
echo hello word | mailx -v -s "demo title" "接受用户1@liming.pub"
多个接收人邮箱以英文逗号
,
号分割,末尾不用加,
号,如:"接受用户1@liming.pub,接受用户2@liming.pub"
二、python发送邮件
增加脚本
/usr/local/bin/mail.py
#!/usr/bin/env python3
#coding: utf-8
import sys
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方STMP服务配置
sender = '发送用户名@liming.pub;'
smtp_server = 'smtp.liming.pub'
username = '发送用户名@liming.pub' # 这里需要带域名后缀
password = '密码'
def send_mail(title, content, receiver):
try:
msg = MIMEText(content,'html','utf-8')
if not isinstance(title,unicode):
title = unicode(title, 'utf-8')
msg['Subject'] = title
msg['From'] = sender
msg['To'] = receiver
msg["Accept-Language"]="zh-CN"
msg["Accept-Charset"]="ISO-8859-1,utf-8"
smtp = smtplib.SMTP_SSL(smtp_server,465)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
return True
except Exception, e:
print str(e)
return False
if send_mail(sys.argv[1], sys.argv[2], sys.argv[3]):
print "发送邮件成功!"
else:
print "发送邮件失败!"
测试发送
python mail.py "邮件标题" "邮件正文" "接受用户1@liming.pub;"
多个接收人邮箱以英文分号
;
分割,另外末尾也要加;
号,如:"接受用户1@liming.pub;接受用户2@liming.pub;"