方法一:

    java发送电子邮件:这里以发送qq邮件为例:

    package test;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class MySendEmail {
    public static void main(String[] args) {
        try {
            String userName = "发送方qq号@qq.com";
            String password = "发送方邮箱密码"; 
            String smtp_server = "smtp.qq.com"; //qq邮箱邮件服务器地址
            String from_mail_address = userName;
            String to_mail_address = "接收方qq号@qq.com";
            Authenticator auth = new PopupAuthenticator(userName, password);
            Properties mailProps = new Properties();
            mailProps.put("mail.smtp.host", smtp_server);
            mailProps.put("mail.smtp.auth", "true");
            mailProps.put("username", userName);
            mailProps.put("password", password);

Session mailSession = Session.getDefaultInstance(mailProps, auth);
            mailSession.setDebug(true);
            MimeMessage message = new MimeMessage(mailSession);
            message.setFrom(new InternetAddress(from_mail_address));
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(
                    to_mail_address));
            message.setSubject("Mail Testw");

MimeMultipart multi = new MimeMultipart();
            BodyPart textBodyPart = new MimeBodyPart();
            textBodyPart.setText("Java电子邮件测试内容w");
            // textBodyPart.setFileName("37af4739a11fc9d6b311c712.jpg");
            textBodyPart.setFileName("E:\\API\\W3C.chm");
            
            multi.addBodyPart(textBodyPart);
            message.setContent(multi);
            message.saveChanges();
            Transport.send(message);
        } catch (Exception ex) {
            System.err.println("邮件发送失败的原因是:" + ex.getMessage());
            System.err.println("具体的错误原因");
            ex.printStackTrace(System.err);
        }
    }
}

class PopupAuthenticator extends Authenticator {
    private String username;
    private String password;

public PopupAuthenticator(String username, String pwd) {
        this.username = username;
        this.password = pwd;
    }

public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(this.username, this.password);
    }
——————————————————————————————————————————————————————------————————————————————————

方法二: 用Spring提供的发邮件功能,同样以发送qq邮箱为例:

  beans.xml文件代码:

  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
    <!-- 注意:这里的参数(如用户名、密码)都是针对邮件发送者的 -->
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host">
            <value>smtp.qq.com</value>
        </property>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.timeout">25000</prop>
            </props>
        </property>
        <property name="username">
            <value>发送方qq号@qq.com</value>
        </property>
        <property name="password">
            <value>发送方qq邮箱密码</value>
        </property>

</bean>
</beans>

发送邮件的Java代码:

package test;

import java.util.UUID;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;

public class SendMail  {
    
    public ApplicationContext ctx = null;    
     public SendMail() {    
      //获取上下文    
      ctx = new ClassPathXmlApplicationContext("beans.xml");    
     }    
     public void send() {    
      //获取JavaMailSender bean    
      JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender");    
      SimpleMailMessage mail = new SimpleMailMessage(); //<SPAN style="COLOR: #ff0000">注意SimpleMailMessage只能用来发送text格式的邮件</SPAN>    
       
       
      try {    
       mail.setTo("接收者@qq.com");//接受者    
       mail.setFrom("发送者@qq.com");//发送者,这里还可以另起Email别名,不用和xml里的username一致    
       mail.setSubject("spring mail test!");//主题    
       mail.setText("springMail的简单发送测试,附带随机验证码为:"+UUID.randomUUID().toString().substring(0, 6));//邮件内容  
       
       sender.send(mail);    
      } catch (Exception e) {    
       e.printStackTrace();    
      }    
     }
    
     public static void main(String[] args) {
         for(int i=0;i<100;i++){
            
             SendMail sendMail = new SendMail();
             sendMail.send();
             System.out.println("发送完毕...");
            
         }

}
}

  完毕....

Java和Spring邮件的发送的更多相关文章

  1. java实现简单邮件的发送以及常见问题

    java实现简单邮件的发送以及常见问题 最近遇到个需求需要实现发送邮件的功能,以前做发送邮件功能都是有邮箱用户名密码,通过用户名密码连接对应的SMTP服务器来实现邮件的发送.但是这次用公司内部的邮箱, ...

  2. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  3. Spring进阶—如何用Java代码实现邮件发送(一)

    相关文章: <Spring进阶—如何用Java代码实现邮件发送(二)> 在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技 ...

  4. Spring 邮件发送

      前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender 关于邮件服务器的设置就不在这里说了,直接去QQ邮箱 ...

  5. Java实现多线程邮件发送

    利用java多线程技术配合线程池实现多任务邮件发送. 1.基本邮件发送MailSender package hk.buttonwood.ops.email; import java.io.File; ...

  6. web基础---->java邮件的发送

    这里记录一下关于java邮件发送代码的编写.你在我身边也好,在天边也罢,想到世界的角落有一个你,觉得整个世界也变得温柔安定了. java邮件的发送 一.直接贴出代码,如下: package com.c ...

  7. java工具类-邮件发送

    mail-1.4.jar package com.huawei.it.citools.mail; import java.util.Date;import java.util.List;import ...

  8. Java 实现邮件的发送

                                             Java 实现邮件的发送 开发邮箱发送功能必须看邮箱方面的资料 改一些东西  (我的是qq 邮箱哟   开通 POP3 ...

  9. Java实现QQ邮件发送客户端

    目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 在上 ...

随机推荐

  1. centos 6 中恢复删除的文件

    CentOS 6 安裝 extundelete:: ##############测试的时候需要2块硬盘############### yum install e2fsprogs-devel e2fsp ...

  2. ubuntu 用remastersys 备份系统并且安装

    sudo add-apt-repository ppa:mutse-young/remastersys 2.更新系统软件源 sudo apt-get update 3.更新完了,先安装remaster ...

  3. day90

    Vue项目简介 最终效果:Vue通过axios发请求给Django后台,Django返回数据给Vue 创建项目: 创建vue项目: -安装node.js -vue脚手架 -vue create 项目名 ...

  4. Linux系列教程(六)——Linux常用命令之文件搜索命令

    前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s  链接名 表示创建软链接,不加-s表示创建硬链接:还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令 ...

  5. BZOJ4860 BJOI2017 树的难题 点分治、线段树合并

    传送门 只会线段树……关于单调队列的解法可以去看“重建计划”一题. 看到路径长度$\in [L,R]$考虑点分治.可以知道,在当前分治中心向其他点的路径中,始边(也就是分治中心到对应子树的根的那一条边 ...

  6. HNOI2017做题笔记

    HNOI2017 单旋(线段树.set) 手玩旋转操作(忽略手玩过程)可以发现:一次单旋对原树的变化实际上很小. 对于父子关系,单旋最小值会将\(Spaly\)上最小值变成原来根的父亲,将最小值的点右 ...

  7. React-简书视频学习总结

    react的基础语法 redux这个数据层框架 react-redux如何方便我们在react中使用redux react-router 4.0 这样的非常实用的相关的第三方模块儿 immutable ...

  8. 转载:(原创)odoo11配置邮件功能的那些事儿

    https://www.cnblogs.com/goyier/p/9246001.html 关于odoo的邮件服务器的配置,百度的结果是众说纷纭,但是都没有能够清楚的说明,odoo系统的邮件功能,仅仅 ...

  9. linux shell的here document用法

    转载自: http://my.oschina.net/u/1032146/blog/146941 什么是Here Document?Here Document 是在Linux Shell 中的一种特殊 ...

  10. WPF Blend 脑洞大开的问题:如何用Blend得到或画出一个凹槽、曲面。

    原文:WPF Blend 脑洞大开的问题:如何用Blend得到或画出一个凹槽.曲面. 目标图: 步骤一(放置一个矩形,填充蓝色): 步骤二(复制该矩形,并调整边角,填充粉红色): 第三部:让图形部分重 ...