美文网首页
匿名发送邮件

匿名发送邮件

作者: 清晨起床敲代码 | 来源:发表于2018-08-03 09:32 被阅读0次

前言:前两天分享了一下邮件的发送,但是存在的问题也很明显,首先是发送需要经过163或QQ邮箱服务器,而且不是真正的匿名,还是能够收到回复信息,其次如果系统运行在内网,限制163等,则邮件会发送失败!

于是,今天分享一个真正意义上的匿名发送(只能在Linux下运行,后面还要配置文件.....)
惯例,先上代码:

from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib

class MailNoReply(object):
    def __FormatAddress(self, text):
        name, addr = parseaddr(text)
        return formataddr((Header(name, 'utf8').encode(), addr))

    def SendOneMail(self, sender, receiver, subject, content):
        '''
        利用本地sendmail服务发一封信
        :param sender: [string] 发信人地址 xx@yy.zz 格式,可杜撰
        :param receiver: [string] 收信人地址 xx@yy.zz 格式,需真实存在
        :param subject: [string] 邮件主题
        :param content: [string] 邮件内容
        :return: True/False 成功/失败
        '''
        try:
            message = MIMEText(content, 'plain', 'utf8')
            message['From'] = self.__FormatAddress('凌晨起床敲代码(随便写) <%s>' % sender)
            message['To'] = self.__FormatAddress('收件人名称(随便写) <%s>' % receiver)
            message['Subject'] = Header(subject, 'utf8').encode()

            smtpObj = smtplib.SMTP('localhost')
            smtpObj.sendmail(sender, [receiver], message.as_string())
            return True
        except smtplib.SMTPException as e:
            return False

if __name__ == "__main__":
    from datetime import datetime
    import random
    random_password = ''.join(str(i) for i in random.sample(range(0, 9), 6))
    email = "xxxxxxxx@qq.com"
    foo = MailNoReply()
    foo.SendOneMail('xxx@xxx.xx', email, '密码重置',
    '亲爱的客户,您于%s发起密码重置,新密码为%s,如非本人操作请速联系管理员!' % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'), random_password))

效果图:


效果图

前提是需要配置sendmail:

ubuntu

sudo apt-get install sendmail sendmail-cf
sudo apt-get install mailutils
修改/etc/mail/sendmail.mc中DAEMON_OPTIONS(Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl的127.0.0.1为0.0.0.0
sudo m4 sendmail.mc > sendmail.cf
把/etc/hosts中“127.0.0.1 localhost.localdomain localhost 主机名称”保留其他注掉
用echo “邮件正文” | mail -s 邮件主题 test@126.com -a From xxx@xx.xx测试一把

centos

sudo yum install -y sendmail sendmail-cf
sudo yum install mailx
修改/etc/mail/sendmail.mc中DAEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA')dnl的127.0.0.1为0.0.0.0
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sudo service sendmail start [ centos7 --> systemctl start sendmail.service ]
用echo “邮件正文” | mailx -s 邮件主题 test@126.com -r admin@xx.xx测试一把
用python脚本本机测试一把

相关文章

  • 匿名发送邮件

    前言:前两天分享了一下邮件的发送,但是存在的问题也很明显,首先是发送需要经过163或QQ邮箱服务器,而且不是真正的...

  • spring boot 邮件发送基础详解(4种邮件超级详细)

    本文将介绍spring boot邮件发送将介绍以下几个方面: 邮件使用场景 邮件发送原理 邮件发送流程 邮件发送步...

  • SKPSMTPMessage

    SKPSMTPMessage 可以自己实现邮件发送,采用系统的邮件发送会弹出邮件发送框,如果要求静默发送邮件可参照...

  • SpringBoot 发送邮件

    # 依赖 # 配置 # 发送简单文本邮件 # 发送html邮件 # 使用邮件模板发送邮件 添加依赖 配置 新建ht...

  • 2018-10-11

    文本邮件的发送 1.邮件发送流程 ​ 邮件的发送是主动行为:主要通过 MUA/邮件客户端软件,将邮件内容发送给对应...

  • python自动发送邮件

    python自动发送邮件 在说python发送邮件之前,需要了解一下简单的邮件发送知识,邮件发送一般通过SMTP协...

  • python -- Email , send(smtp), re

    python Email功能: 发送普通文本邮件 发送带有html格式的邮件 发送带有附件的邮件 发送插入图片到正...

  • 2018-07-02

    发送邮件 //发送邮件 @ResponseBody @RequestMapping("email") public...

  • Golang使用SMTP发送邮件

    使用SMTP发送邮件 发送邮件测试 邮箱如下

  • python学习(21)smtp发送邮件

    本文介绍python发送邮件模块smtplib以及相关MIME模块。smtplib用于生成邮件发送的代理,发送邮件...

网友评论

      本文标题:匿名发送邮件

      本文链接:https://www.haomeiwen.com/subject/dkzevftx.html