send mail

部署运行你感兴趣的模型镜像
#!/usr/bin/env python
# -*- coding: cp936 -*-


#-------------------------------------------------------------
#author: Jack_wind
#purpose: The summary of three ways of send mails
#time: 13th Dec 2011
#-------------------------------------------------------------


#-------------------------------------------------------------
#SMTP.set_debuglevel(level)  default: False
#SMTP.docmd(cdm[,argstring]) send command to the server
#-------------------------------------------------------------


import smtplib, time


class SmtpWind:
    def __init__(self, fromaddr, toaddrs):
        self._fromaddr = fromaddr
        self._toaddrs = toaddrs
        self._label = 'potential'
        self._subject = '['+self._label+'] automatic send test'
        self._content = ''
        self._html_header = ''
        self._html_footer = ''
        self._time = ''
        self._issend = True
        self._smtp = 0
        
    def send_by_general(self):
        if((not self._fromaddr) and (not self._toaddrs)):
            print('The address of the send and the receive is empty')
        
        self._label = 'general'
        self._subject = '['+self._label+'] automatic send test'
        self._content = ('Subject: %s\r\nFrom: %s\r\nTo: %s\r\n'
            % (self._subject, self._fromaddr, ', '.join(self._toaddrs)))
        
        self._time = time.strftime("%H:%M:%S", time.localtime())
        self._content += "Hi, how's it going!\n\n"
        self._content += self._time
        
        for toaddr in self._toaddrs:
            self._smtp = smtplib.SMTP()
            self._smtp.connect("smtp.ea-angel.com", "25")
            self._smtp.login('wanglf@ea-angel.com', 'w359f953l359')
            self._smtp.sendmail(self._fromaddr, toaddr, self._content)
            self._smtp.quit()
        print('send mail sucess')
        
    def send_by_html(self):
        if((not self._fromaddr) and (not self._toaddrs)):
            print('The address of the send and the receive is empty')
            
        self._label = 'html'
        self._subject = '['+self._label+'] automatic send test'
        self._content = ('Subject: %s\r\nFrom: %s\r\nTo: %s\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n'
            % (self._subject, self._fromaddr, ', '.join(self._toaddrs)))
        
        self._html_header = """<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
        <title></title>
        </head>
        <body>
        """
        
        self._html_footer = """</body>
        </html>
        """
        
        self._content += "details of executed test: <br>"
        self._content += self._html_header
        s1 = "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\" width=\"800\"><tbody>"
        s2 = "<tr><td valign=\"top\">" + str(1) + "<br></td>"
        s2 += "<td bgcolor=\"#33ff33\" valign=\"top\">OK<br></td>"
        s2 += "<td valign=\"top\">my pleasure<br></td></tr>"
        s1 += s2 + '\n'
        s1 += "</tbody></table>"
        s1 += "<br>Best Wishes"
        self._content += s1
        self._content += self._html_footer
        
        self._time = time.strftime("%H:%M:%S", time.localtime())
        self._content += self._time
        
        for toaddr in self._toaddrs:
            self._smtp = smtplib.SMTP("smtp.ea-angel.com", "25")
            self._smtp.login('wanglf@ea-angel.com', 'w359f953l359')
            self._smtp.sendmail(self._fromaddr, toaddr, self._content)
            self._smtp.quit()
        print('send mail sucess')
        
    def send_by_email(self):
        import mimetypes
        from email.mime.text import MIMEText
        from email.mime.multipart import MIMEMultipart
        from email.mime.image import MIMEImage
        
        self._label = 'email'
        self._subject = '['+self._label+'] automatic send test'
            
        content = MIMEMultipart()
        content['From'] = self._fromaddr
        content['To'] = ', '.join(self._toaddrs)
        content['Subject'] = self._subject
        
        self._time = time.strftime("%H:%M:%S", time.localtime())
        text = MIMEText("Hi, how's it going!\n\n%s" % self._time)
        content.attach(text)
        
        filename = r'e:/test.py'
        ctype, encoding = mimetypes.guess_type(filename)
        if ctype is None or encoding is not None:
            ctype = 'application/octet-stream'
        maintype, subtype = ctype.split('/', 1)
        att = MIMEImage((lambda f: (f.read(), f.close()))(open(filename, 'rb'))[0], _subtype=subtype)
        att.add_header('Content-Disposition', 'attachment', filename=filename.split('/')[1])
        content.attach(att)
        
        for toaddr in self._toaddrs:
            self._smtp = smtplib.SMTP("smtp.ea-angel.com", "25")
            self._smtp.login('wanglf@ea-angel.com', 'w359f953l359')
            self._smtp.sendmail(self._fromaddr, toaddr, content.as_string())
            self._smtp.quit()
        print('send mail sucess')
        
        
        
        
if __name__ == "__main__":
    fromaddr = 'wanglf@ea-angel.com'
    toaddrs = []
    toaddrs.append('wanglf@ea-angel.com')
    #toaddrs.append('wanglf359@sina.com')
    
    #smtp_general = SmtpWind(fromaddr, toaddrs)
    #smtp_general.send_by_general()
    
    #smtp_html = SmtpWind(fromaddr, toaddrs)
    #smtp_html.send_by_html()
    
    smtp_email = SmtpWind(fromaddr, toaddrs)
    smtp_email.send_by_email()

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在Java中发送电子邮件,通常使用JavaMail API,这是一个标准的扩展库,允许开发者在应用程序中集成邮件发送功能。JavaMail API提供了丰富的类和接口,如`MimeMessage`、`Session`、`Transport`等,用于构建和发送电子邮件。 ### 发送简单文本邮件 下面是一个使用JavaMail API发送简单文本邮件的基本示例。此示例中使用了`MimeMessage`来构建邮件内容,并通过`Transport`类发送邮件[^1]。 ```java import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class SimpleEmailSender { public static void main(String[] args) { // 邮件服务器配置 String host = "smtp.163.com"; // SMTP服务器地址 int port = 465; // SMTP服务器端口号 final String username = "dfh_414@163.com"; // 发件人邮箱账号 final String password = "KSFIDNNNLZCVLAUT"; // 授权码 // 收件人地址 String to = "xxxxxx@qq.com"; // 设置邮件服务器属性 Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false"); // 创建会话 Session session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // 创建邮件对象 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject("测试邮件"); message.setText("网易邮箱给QQ邮箱发消息了!"); // 发送邮件 Transport.send(message); System.out.println("邮件发送成功"); } catch (MessagingException e) { e.printStackTrace(); } } } ``` ### 发送HTML邮件 如果需要发送包含HTML格式内容的邮件,可以使用`MimeMessage`的`setContent()`方法,指定内容类型为`text/html`[^2]。 ```java // 创建邮件对象 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject("HTML邮件测试"); // HTML内容 String htmlContent = "<h1>这是一个HTML邮件</h1><p>支持<b>加粗</b>和<i>斜体</i>文字。</p>"; message.setContent(htmlContent, "text/html; charset=utf-8"); ``` ### 发送带有附件的邮件 发送带有附件的邮件时,需要创建`MimeBodyPart`对象来表示每个部分,然后将这些部分添加到`MimeMultipart`对象中,最后将这个多部分对象设置为邮件的内容[^2]。 ```java // 创建邮件对象 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject("带附件的邮件"); // 创建多部分消息 MimeMultipart multipart = new MimeMultipart(); // 创建文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setText("这是一封带有附件的邮件。"); multipart.addBodyPart(textPart); // 创建附件部分 MimeBodyPart attachmentPart = new MimeBodyPart(); FileDataSource fileDataSource = new FileDataSource("path/to/file.txt"); attachmentPart.setDataHandler(new DataHandler(fileDataSource)); attachmentPart.setFileName(fileDataSource.getName()); multipart.addBodyPart(attachmentPart); // 将多部分内容设置为邮件内容 message.setContent(multipart); ``` ### 邮件发送配置 为了简化邮件发送过程,特别是在Spring Boot项目中,可以通过添加依赖项和配置来实现邮件发送功能[^3]。 #### Maven依赖 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>jakarta.mail</artifactId> <version>1.6.7</version> <scope>compile</scope> </dependency> ``` #### application.yml 配置 ```yaml spring: mail: protocol: smtps host: smtp.163.com username: dfh_414@163.com password: KSFIDNNNLZCVLAUT default-encoding: UTF-8 port: 465 properties: mail: stmp: ssl: enable: true ``` 以上代码和配置展示了如何使用Java发送不同类型(文本、HTML、带附件)的电子邮件,以及如何在Spring Boot项目中配置邮件发送功能。希望这些信息能帮助你实现Java邮件发送功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值