精华内容
下载资源
问答
  • smtp发邮件
    千次阅读
    2017-10-11 14:09:05
    public class Main {
    
        // 发件人的 邮箱 和 密码(替换为自己的邮箱和密码)
        // PS: 某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”), 
        //     对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)。
        public static String myEmailAccount = "xu_java@sina.com";
        public static String myEmailPassword = "asd182429";
    
        // 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com
        // 网易163邮箱的 SMTP 服务器地址为: smtp.163.com
        public static String myEmailSMTPHost = "smtp.sina.com";
    
        // 收件人邮箱(替换为自己知道的有效邮箱)
        public static String receiveMailAccount = "990358966@qq.com";
    
        public static void main(String[] args) throws Exception {
            // 1. 创建参数配置, 用于连接邮件服务器的参数配置
            Properties props = new Properties();                    // 参数配置
            props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)
            props.setProperty("mail.smtp.host", myEmailSMTPHost);   // 发件人的邮箱的 SMTP 服务器地址
            props.setProperty("mail.smtp.auth", "true");            // 需要请求认证
    
            // PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),
            //     如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,
            //     打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。
            /*
            // SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,
            //                  需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,
            //                  QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)
            final String smtpPort = "465";
            props.setProperty("mail.smtp.port", smtpPort);
            props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.setProperty("mail.smtp.socketFactory.fallback", "false");
            props.setProperty("mail.smtp.socketFactory.port", smtpPort);
            */
    
            // 2. 根据配置创建会话对象, 用于和邮件服务器交互
            Session session = Session.getDefaultInstance(props);
            session.setDebug(true);                                 // 设置为debug模式, 可以查看详细的发送 log
    
            // 3. 创建一封邮件
            MimeMessage message = createMimeMessage(session, myEmailAccount, receiveMailAccount);
    
            // 4. 根据 Session 获取邮件传输对象
            Transport transport = session.getTransport();
    
            // 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错
            // 
            //    PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log,
            //           仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误
            //           类型到对应邮件服务器的帮助网站上查看具体失败原因。
            //
            //    PS_02: 连接失败的原因通常为以下几点, 仔细检查代码:
            //           (1) 邮箱没有开启 SMTP 服务;
            //           (2) 邮箱密码错误, 例如某些邮箱开启了独立密码;
            //           (3) 邮箱服务器要求必须要使用 SSL 安全连接;
            //           (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务;
            //           (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。
            //
            //    PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。
            transport.connect(myEmailAccount, myEmailPassword);
    
            // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
            transport.sendMessage(message, message.getAllRecipients());
    
            // 7. 关闭连接
            transport.close();
        }
    
        /**
         * 创建一封只包含文本的简单邮件
         *
         * @param session 和服务器交互的会话
         * @param sendMail 发件人邮箱
         * @param receiveMail 收件人邮箱
         * @return
         * @throws Exception
         */
        public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
            // 1. 创建一封邮件
            MimeMessage message = new MimeMessage(session);
    
            // 2. From: 发件人
            message.setFrom(new InternetAddress(sendMail, "徐伟", "UTF-8"));
    
            // 3. To: 收件人(可以增加多个收件人、抄送、密送)
            message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "SSS", "UTF-8"));
    
            // 4. Subject: 邮件主题
            message.setSubject("CESHI", "UTF-8");
    
            // 5. Content: 邮件正文(可以使用html标签)
            message.setContent("CSDFE", "text/html;charset=UTF-8");
    
            // 6. 设置发件时间
            message.setSentDate(new Date());
    
            // 7. 保存设置
            message.saveChanges();
    
            return message;
        }
    
    }
    更多相关内容
  • php中通过smtp发邮件的类,测试通过
  • 自动发邮件功能
  • php下使用SMTP发邮件的代码
  • SMTP服务器,源码总汇,收发邮件服务器代码,本代码包含了,收邮件服务器和发邮件服务器,VC++
  • JSP实现的smtp发邮件源代码
  • 现在大多数主机不支持mail函数,发邮件成了问题,大部分人使用企业邮箱,那么用企业邮箱发送邮件的php代码就在这里了!
  • 腾讯企业邮箱smtp发邮件

    千次阅读 2021-07-31 04:06:06
    image.pngMGXJMWJDEMNVUGQN腾讯企业邮箱发邮件通知(python脚本):可读文件的版本#!/usr/bin/env python3# -*- coding: utf-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.utils import ...

    99ae6975fd8f

    image.png

    MGXJMWJDEMNVUGQN

    腾讯企业邮箱发邮件通知(python脚本):

    可读文件的版本

    #!/usr/bin/env python3

    # -*- coding: utf-8 -*-

    import smtplib

    from email.mime.text import MIMEText

    from email.utils import formataddr

    # 发件人邮箱账号

    my_sender='guozh@paraview.cn'

    # user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功

    my_pass = 'Hao124'

    # 收件人邮箱账号

    my_user='xiecq@paraview.cn'

    def mail(fileDir_asString):

    with open(fileDir_asString, "r+") as f:

    content = f.read()

    ret=True

    try:

    # 邮件内容

    msg=MIMEText(content,'plain','utf-8')

    # 括号里的对应发件人邮箱昵称、发件人邮箱账号

    msg['From']=formataddr(["guozh@paraview.cn",my_sender])

    # 括号里的对应收件人邮箱昵称、收件人邮箱账号

    msg['To']=formataddr(["xiecq@paraview.cn",my_user])

    # 邮件的主题

    msg['Subject']="发版流水线测试"

    # SMTP服务器,腾讯企业邮箱端口是465,腾讯邮箱支持SSL(不强制), 不支持TLS

    # qq邮箱smtp服务器地址:smtp.qq.com,端口号:456

    # 163邮箱smtp服务器地址:smtp.163.com,端口号:25

    server=smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)

    # 登录服务器,括号中对应的是发件人邮箱账号、邮箱密码

    server.login(my_sender, my_pass)

    # 发送邮件,括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件

    server.sendmail(my_sender,[my_user,],msg.as_string())

    # 关闭连接

    server.quit()

    # 如果 try 中的语句没有执行,则会执行下面的 ret=False

    except Exception:

    ret=False

    return ret

    ret=mail('/data/backup/scripts/mail.txt')

    if ret:

    print("邮件发送成功")

    else:

    print("邮件发送失败")

    原版

    #!/usr/bin/env python3

    # -*- coding: utf-8 -*-

    import smtplib

    from email.mime.text import MIMEText

    from email.utils import formataddr

    # 发件人邮箱账号

    my_sender='guozh@paraview.cn'

    # user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功

    my_pass = 'Hao124'

    # 收件人邮箱账号

    my_user='xiecq@paraview.cn'

    def mail():

    ret=True

    try:

    # 邮件内容

    msg=MIMEText('..........。 ','plain','utf-8')

    # 括号里的对应发件人邮箱昵称、发件人邮箱账号

    msg['From']=formataddr(["guozh@paraview.cn",my_sender])

    # 括号里的对应收件人邮箱昵称、收件人邮箱账号

    msg['To']=formataddr(["xiecq@paraview.cn",my_user])

    # 邮件的主题

    msg['Subject']="使用腾讯邮箱发送邮件测试"

    # SMTP服务器,腾讯企业邮箱端口是465,腾讯邮箱支持SSL(不强制), 不支持TLS

    # qq邮箱smtp服务器地址:smtp.qq.com,端口号:456

    # 163邮箱smtp服务器地址:smtp.163.com,端口号:25

    server=smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)

    # 登录服务器,括号中对应的是发件人邮箱账号、邮箱密码

    server.login(my_sender, my_pass)

    # 发送邮件,括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件

    server.sendmail(my_sender,[my_user,],msg.as_string())

    # 关闭连接

    server.quit()

    # 如果 try 中的语句没有执行,则会执行下面的 ret=False

    except Exception:

    ret=False

    return ret

    ret=mail()

    if ret:

    print("邮件发送成功")

    else:

    print("邮件发送失败")

    未测试版本

    #-*- coding: UTF-8 -*-

    from email.header import Header

    from email.mime.text import MIMEText

    from email.utils import formataddr

    import smtplib

    # 用户信息

    from_addr = 'guozh@paraview.cn'

    password = 'H3Sv73Gq4BV7XDqG' # # 腾讯QQ邮箱或腾讯企业邮箱必须使用授权码进行第三方登陆

    to_addr = ''

    smtp_server = 'smtp.exmail.qq.com' # 腾讯服务器地址

    # 内容初始化,定义内容格式(普通文本,html)

    msg = MIMEText('我要发邮件......', 'plain', 'utf-8')

    # 发件人收件人信息格式化 ,可防空

    # 固定用法不必纠结,我使用lambda表达式进行简单封装方便调用

    lam_format_addr = lambda name, addr: formataddr((Header(name, 'utf-8').encode(), addr))

    # 传入昵称和邮件地址

    msg['From'] = lam_format_addr('发件人昵称', from_addr) # 腾讯邮箱可略

    msg['To'] = lam_format_addr('收件人昵称(服务商会自动替换成用户名)', to_addr) # 腾讯邮箱可略

    # 邮件标题

    msg['Subject'] = Header('邮件的标题......', 'utf-8').encode() # 腾讯邮箱略过会导致邮件被屏蔽

    # 服务端配置,账密登陆

    server = smtplib.SMTP(smtp_server, 25)

    # 腾讯邮箱支持SSL(不强制), 不支持TLS。

    # server = smtplib.SMTP_SSL(smtp_server, 465) # 按需开启

    # 调试模式,打印日志

    # server.set_debuglevel(1) # 按需开启

    # 登陆服务器

    server.login(from_addr, password)

    # 发送邮件及退出

    server.sendmail(from_addr, [to_addr], msg.as_string()) #发送地址需与登陆的邮箱一致

    server.quit()

    展开全文
  • 前端发邮件smtp.js

    2022-04-21 17:41:14
    前端发邮件smtp.js
  • SMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdf
  • smtp.rar_smtp_发邮件

    2022-09-24 17:20:30
    在linux下编写的smtp转发邮件程序,能解码base64,利用smtp协议实现邮件的本地接受及发送到真正的服务器上。
  • Linux使用mail配合smtp发送邮件

    千次阅读 2022-02-18 14:08:46
    由于工作需要结合shell脚本需要发送邮件通知,linux自带的mail可以实现外部smtp发邮件。不需要本地配置postfix,sendmail邮件服务器。 本文教程包含25端口发送邮件和mail使用465端口加密发邮件,mail基本命令发送...

    由于工作需要结合shell脚本需要发送邮件通知,linux自带的mail可以实现外部smtp发邮件。不需要本地配置postfix,sendmail邮件服务器。

    本文教程包含25端口发送邮件和mail使用465端口加密发邮件,mail基本命令发送邮件三个知识点,测试系统是centos7

    Linux-mail-smtp

    安装工具

    #  yum -y install mailx
    #  yum -y install sendmail
    
    centos6
    # /etc/init.d/sendmail start
    # chkconfig sendmail on
    
    centos7
    systemctl enable sendmail
    

    关闭其他的邮件工具

    # systemctl stop sendmail
    # systemctl stop postfix
    

    开启邮箱imap/smtp服务

    我这里使用的是163的邮箱,步骤如下:

    1.登录邮箱后,点击页面顶部的“设置”菜单,在下拉框中点击“POP3/SMTP/IMAP”项

    clipboard.png

    2.进入到如下页面,勾选IMAP/SMTP服务项,根据步骤完成即可(由于我这里已经开启过,就不再演示了。初始勾选后会让你填写手机号码,发送验证码,成功填写后,会让你输入授权码,这个是作为smtp登录的密码使用的,详情请看163的smtp说明)

    clipboard.png

    配置发送的邮箱和密码,注意不是你的邮箱登录密码!

    # vi /etc/mail.rc
    
    在底部添加:
    set from="xxx@163.com"
    set smtp=smtp.163.com
    set smtp-auth-user=xxx@163.com
    set smtp-auth-password=自己填写的授权码
    set smtp-auth=login
    
    

    测试发送

    echo -e "你好!n我来看看你n哈哈" | mail -s "测试邮件" shoujianren@163.com
    
    mail  -s "`date +%F-%T`" shoujianren@163.com </tmp/messages.txt
    
    echo -e "你好!\n我来看看你\n哈哈" | mail -s "测试邮件" xxx@163.com
    
    
    

    有的云服务器商封了25端口。

    1.开工单,让客服把25号端口开通,例如阿里云TCP 25端口解封申请 https://help.aliyun.com/knowledge_detail/56130.html

    2.使用加密端口发送邮件。

    mail使用465端口加密发邮件

    今天由于服务需求,需要服务器需要发送邮件;但是不论用什么办法,发送邮件总是失败;最终发现原因:阿里云实例服务器默认禁止了25端口;

    关闭其它的邮件工具

    # systemctl stop sendmail
    # systemctl stop postfix
    

    安装mailx

    yum install mailx
    

    开启smtp

    参考上一步

    请求数字证书

    这里用的163邮箱,所以向163请求证书

    # mkdir /root/.certs
    
    # echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/.certs/163.crt
    
    # certutil -A -n "GeoTrust SSL CA" -t "C,," -d /root/.certs -i /root/.certs/163.crt
    
    # certutil -A -n "GeoTrust Global CA" -t "C,," -d /root/.certs -i /root/.certs/163.crt
    
    # certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /root/.certs/./ -i /root/.certs/163.crt
    
    # ls /root/.certs/
    163.crt  cert8.db  key3.db  secmod.db
    
    # certutil -L -d /root/.certs
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    GeoTrust SSL CA                                              P,P,P
    

    配置/etc/mail.rc

    # vim /etc/mail.rc
    
    set from=xxx@163.com #之前设置好的邮箱地址
    set smtp="smtps://smtp.163.com:465" #邮件服务器
    set smtp-auth-user=xxx@163.com #之前设置好的邮箱地址
    set smtp-auth-password=xxxx #授权码
    set smtp-auth=login #默认login即可
    set ssl-verify=ignore #ssl认证方式
    set nss-config-dir=/root/.certs #证书所在目录
    

    发送邮件测试

    # echo "邮件正文" | mail -s "邮件主题" xxx@163.com
    

    邮件发送成功

    image-20220218134340670

    mail基本命令发送邮件

    1.标题为"test"内容为空的邮件,容易被邮箱服务判为垃圾邮件。

    mail -s "test" username2@163.com
    

    2.以文件为内容作为邮件正文:

    echo "222222222" > /root/mail1
    mail -s test username2@163.com < /root/mail1 
    mail -s test2 username1@163.com,username3@163.com < /root/mail1 
    

    3.使用管道进行邮件发送

    echo "hello,username3...." | mail -s "hello" username3@163.com
    

    4.发送附件
    在linux下使用mail命令发送附件也很简单,不过首先需要安装uuencode软件包,这个程序是对二进制文件进行编码使其适合通过邮件进行发送,直接使用centos的yum源可能找不到uuencode命令的包sharutils,我这里使用了网易Yum源。

    # yum -y install sharutils
    
    # uuencode /root/mail1 | mail -s "fujian" xxxx@163.com < /root/file1
    
    

    5、使用外部smtp来发送邮件

    # vi /etc/mail.rc          #文末添加以下
    set from=username1@163.com 
    smtp=smtp.163.com
    set smtp-auth-user=username1@163.com 
    smtp-auth-password=password 
    smtp-auth=login
    
    # source /etc/mail.rc	【本人测试,不需要这步即可】
    # mail -s "testmail" username@163.com < /etc/passwd
    
    展开全文
  • 使用SMTP协议命令行发送邮件

    千次阅读 2021-10-16 22:24:31
    使用SMTP协议命令行发送邮件 SMTP命令不区分大小写 SMTP界面字母输错后,只能回车,重新输入 一、使用telnet远程登录到邮件服务器 这里以网易邮箱(smtp.163.com)为例 telnet smtp.163.com 25 ...三、发邮件 1

    使用SMTP协议命令行发送邮件

    SMTP命令不区分大小写
    SMTP界面字母输错后,只能回车,重新输入

    一、使用telnet远程登录到邮件服务器

    这里以网易邮箱(smtp.163.com)为例

    telnet smtp.163.com 25
    

    运行效果:
    在这里插入图片描述

    二、登录

    1、向服务器表明你的用户身份
    helo smtp
    

    运行效果:
    在这里插入图片描述

    2、输入用户名
    auth login
    

    在回车之后输入邮箱用户名的Base64编码
    运行效果:
    请添加图片描述
    在回车之后输入邮箱密码的Base64编码
    登录成功哈哈
    运行效果:
    请添加图片描述

    三、发邮件

    1、输入发件人邮箱即当前登录邮箱(必须为当前登录邮箱)
    mail from:<你的邮箱>
    

    运行效果:
    在这里插入图片描述

    2、输入收件人邮箱
    rcpt to:<收件人邮箱>
    

    运行效果:
    在这里插入图片描述

    3、填写邮件内容
    data
    

    :在输入subject:之后即可输入邮件主题
    邮件主题与邮件内容之间有一空行,并且内容以英文句号即.结束。
    在这里插入图片描述

    邮箱收到效果:
    在这里插入图片描述

    展开全文
  • smtp发邮件550 Connection frequency limited

    千次阅读 2019-12-05 18:26:11
    额。。。。。我就记录一下
  • Golang使用SMTP发送邮件

    千次阅读 2020-04-12 14:18:44
    使用SMTP发送邮件 import ( "fmt" "net/smtp" "strings" ) const ( // 邮件服务器地址 SMTP_MAIL_HOST = "smtp.126.com" // 端口 SMTP_MAIL_PORT = "25" // 发送邮件用户账号 SMTP_MAIL_USER = "username@...
  • 本篇文章主要介绍了python使用两种发邮件的方式smtp和outlook示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • java实现smtp发送邮件

    千次阅读 2020-08-27 10:57:01
    实现方法: public void sendTrueEmail(Email email){ //配置发送邮件的环境属性... // 表示SMTP发送邮件,需要进行身份验证 props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", "smtp.qq.com"); /
  • C#发送邮件 SMTP

    千次阅读 2022-03-04 14:41:04
    使用qq的smtp服务发送邮件
  • 常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。下面分别对其进行简单介绍 1.1、SMTP协议 SMTP的全称是"SimpleMailTransferProtocol",即...
  • CentOS配置smtp发邮件

    千次阅读 2017-08-07 08:23:08
    修改/etc/mail.rc文件,在最后一行加入以下内容 1 ...set from=fromUser@donai.com #发送的邮件地址(件人) set smtp=smtp.domain.comset #smtp服务器地址 set smtp
  • 易语言SMTP邮件发送

    2020-07-23 22:47:51
    易语言SMTP邮件发送源码,SMTP邮件发送,发送
  • 使用163邮箱的SMTP服务,发送到QQ邮箱时出现错误: 暂时不知道解决方法。... •554 DT:SUM 信封件人和信头发件人不匹配;  •554 IP is rejected, smtp auth error limit exceed 该IP验证失...
  • 使用Telnet连接smtp服务器发送邮件

    千次阅读 2022-04-16 22:00:01
    我们可以通过 Telent 发送一条邮件,并了解其过程。 1. 前提准备 1.1 开启 Telnet 按下快捷键 Win + S,在搜索框内输入 “启用或关闭Windows功能”,并打开。 若Telent没有被勾选,请勾选后点确定安装。 1.2 开启...
  • ...可以使用wp_mail()这个现成的函数来发邮件,wp_mail()底层也是使用phpmailer。 $headers = array('Content-Type: text/html; charset=UTF-8','From: '. get_option('blogname') .' &l...
  • import smtplib fromaddr = "abc@abc.com" toaddrs = "abc@abc.com".split() ... server = smtplib.SMTP('localhost') ...测试可以发邮件,只是邮件没有标题,还没有研究如何加标题
  • 主要介绍了golang实现通过smtp发送电子邮件的方法,实例分析了Go语言基于SMTP协议发送邮件的相关技巧,需要的朋友可以参考下
  • 1.编写smtp发邮件的小工具,server制定的是smtp.163.com 2.用户名是刚刚注册的163邮箱 3.密码是新设置的第三方授权码 在log的时候,鉴权时,用户名认证通过,但是密码(授权码)认证返回535错误码 有没有大神遇到...
  • 【wordpress】配置SMTP发送邮件

    千次阅读 2020-10-25 17:01:14
    问题来源: 之前的文章中,有小伙伴阅读后,留下了评论,但是我却没有及时在后台通过评论,所以没有显示...这可太让人懵逼了,其实原因是:WP自带的发邮件功能用到了PHP中mail函数,但是要使用他,需要在服务器中的PH
  • 使用telnet登录smtp服务发邮件

    万次阅读 2017-10-17 14:50:57
    1、使用telnet连接smtp服务器 2、发送一个helo或者ehlo指令 3、验证用户(使用邮件名登陆) 4、使用mail命令准备发送邮件 5、使用rcpt命令指定对方邮箱地址 6、使用data命令开始输入内容 7、输入test或者hello world...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,874
精华内容 67,949
关键字:

smtp发邮件

友情链接: data.rar