实战java发邮件

必须下载sun公司的JavaMail API包,地址为:http://java.sun.com/products/javamail/ 并将相关包(jar文件)加到CLASSPATH中。
或者如果安装j2ee则将j2ee.jar加入classpath即可。

源程序如下,替换红色部分即可使用。

对您有帮助或有问题请来信讨论:petehero@126.com

 

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

/**
 * <p>Title: java mail</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author petehero
 * @version 1.0
 */

public class SendMail
{

    public SendMail()
    {
    }
    public void send(){
        try
        {
            Properties props = new Properties();
            Session sendMailSession;
            Store store;
            Transport transport;
            props.put("mail.smtp.auth","true");
            props.put("mail.smtp.host", "smtp.yourmail.com"); //smtp主机名。
            props.put("mail.smtp.user","username@yourmail.com"); //发送方邮件地址。
            props.put("mail.smtp.password","888888"); //邮件密码。
            PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
            PasswordAuthentication pop = popA.performCheck("username","888888"); //填写用户名及密码
            sendMailSession = Session.getInstance(props, popA);
            Message newMessage = new MimeMessage(sendMailSession);
            newMessage.setFrom(new InternetAddress("username@yourmail.com"));
            newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("receiver@mail.com"));  //接收方邮件地址
            newMessage.setSubject("邮件主题");
            newMessage.setSentDate(new Date());
            String mailContent;
            mailContent="你好!/n/n";
            mailContent+="/t邮件正文/n/n";
            mailContent+=new Date().toLocaleString();
            newMessage.setText(mailContent); //邮件正文
            transport = sendMailSession.getTransport("smtp");
            transport.send(newMessage);
        }
        catch (MessagingException ex)
        {
            ex.printStackTrace();
        }
    }
    public static void main(String[] args)
    {
        SendMail sml = new SendMail();
        sml.send();
    }

    public class PopupAuthenticator extends Authenticator{
        String username=null;
        String password=null;
        public PopupAuthenticator(){}
        public PasswordAuthentication performCheck(String user,String pass){
            username = user;
            password = pass;
            return getPasswordAuthentication();
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }

    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Flink是一个用于对无界和有界数据流进行有状态计算的开源流处理框架。它被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。Flink的重要特点之一是事件驱动型应用,它从一个或多个事件流中提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。与Spark Streaming的微批次不同,Flink是基于事件的处理模式。\[1\] 在使用Flink进行实战时,可以使用Java编写代码。首先,需要在Maven构建中加入Flink的依赖,包括flink-java和flink-clients。然后,可以编写Java代码来实现具体的Flink应用,比如WordCount。\[3\] 在配置文件flink-conf.yaml中,可以修改classloader.check-leaked-classloader为false来禁用类加载器泄漏检查。然后,可以使用命令行工具flink run来提交Flink应用,使用yarn-per-job模式来在YARN上运行。需要指定主类和应用的jar包路径。\[2\] 总结起来,Flink是一个用于流处理的开源框架,可以使用Java编写实战代码,并通过命令行工具在YARN上运行。 #### 引用[.reference_title] - *1* [JavaFlink原理、实战、源码分析(一)原理部分](https://blog.csdn.net/qq_36250202/article/details/112978869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [flink经典实战案例](https://blog.csdn.net/qq_46447060/article/details/120025923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值