1.需要用到javax.mail怎么下载呢?百度javax.mail就会看见http://www.oracle.com/technetwork/java/index-138643.html实际上这个项目是www.java.net网站上面的项目。

下面的用javax.mail从163邮箱向qq邮箱发送邮件。

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public class Haha {
    public static void sendMail(String fromMail, String user, String password, String toMail, String mailTitle,
            String mailContent) throws Exception {
        Properties props = new Properties(); // 可以加载一个配置文件
        props.put("mail.smtp.host", "smtp.163.com");
        Session session = Session.getInstance(props);// 根据属性新建一个邮件会话
        session.setDebug(true); // 有他会打印一些调试信息。

        MimeMessage message = new MimeMessage(session);// 由邮件会话新建一个消息对象
        message.setFrom(new InternetAddress(fromMail));// 设置发件人的地址
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail));
        message.setSubject(mailTitle);// 设置标题
        //message.setText(mailContent); // 发送 纯文本 邮件
        message.setContent(mailContent, "text/html;charset=gbk"); // 发送HTML邮件,内容样式比较丰富
        message.setSentDate(new Date());// 设置发信时间
        message.saveChanges();// 存储邮件信息

        Transport transport = session.getTransport("smtp");
        transport.connect(user, password);
        transport.sendMessage(message, message.getAllRecipients());// 发送邮件,其中第二个参数是所有已设好的收件人地址
        transport.close();
    }

    public static void main(String[] args) throws Exception {
        sendMail("xxxxx@163.com", "xxxxxxx@163.com", "网易邮箱密码", "收件人邮箱@qq.com", "Java Mail 测试邮件",
                "<a>html 元素</a>:<b>邮件内容</b>");
    }
}

2.Apache对javax.mail进行了一下封装,叫org.apache.commons.mail

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

public class Main {

    public static void main(String[] args) {
        new Main();
    }

    Main() {
        try {
            HtmlEmail email = new HtmlEmail();
            email.setHostName("smtp.qq.com");
            email.setSmtpPort(587);
            email.setAuthentication("xxxxx@qq.com", "激活smtp功能后的验证码");
            email.addTo("xxxxx@qq.com");
            email.setFrom("xxxxx@qq.com");
            email.setMsg("鹏哥,咱们是整着玩的,别老是想着一鸣惊人。");
            email.send();
        } catch (EmailException e) {
            e.printStackTrace();
        }
    }
}

3.发邮件需要让服务器发邮件,如果是163邮箱,直接弄就行。如果是通过qq邮箱发邮件,就要进行一些设置。一运行,qq邮箱会告诉你去一个链接学习一下:http://service.mail.qq.com/cgi-bin/help?id=28

  上面这个链接详细解释了所有内容,可以顺便学学一些协议。

  需要激活qq邮箱的smtp功能(在qq邮箱中进行账户设置),并且端口也很重要,发送端口和接收端口不是一回事,详见http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=369

4.使用python发送邮件

import smtplib
from email.mime.text import MIMEText

server = smtplib.SMTP("smtp.163.com")
server.login("18304049305@163.com", "jing__010")
message = MIMEText("weidiao is great")
message["Subject"] = "haha"
message["from"] = "xxxxx.com"
message["to"] = "xxxx@qq.com"
server.sendmail("18304049305@163.com", ["1661686074@qq.com"], message.as_string())
server.quit()

java发送邮件的更多相关文章

  1. Java发送邮件初窥

    一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 ...

  2. Java发送邮件,所遇到的常见需求

    明天要做关于发送邮件的接口,虽然我之前已用Java Mail做过许多关于邮件的发送.但同事说有点难点,虽我还不知难点在哪,还是要复习下.凡事预则立,不预则废嘛~ 所需的包: Java Mail : 目 ...

  3. 用java发送邮件(黄海已测试通过)

    /** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...

  4. Java发送邮件(带附件)

    实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...

  5. 用Java发送邮件

    要用Java发送邮件,除过JDK本身的jar包之外,还需要两个额外的jar包:JavaMail和JAF.当然,如果你使用的JavaEE的JDK,那就不用单独去网上下载了,因为JavaEE的JDK中已经 ...

  6. Java发送邮件时标题和发件人乱码

    最近碰到一个问题,Java发送邮件时,查看邮箱结果,发件人及邮件标题正文全部乱码 通过翻阅资料,原因及解决方法如下: // Set Subject: 头字段 message.setSubject(Mi ...

  7. Java - 31 Java 发送邮件

    Java 发送邮件 使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) . 你可以在 ...

  8. Java-Runoob-高级教程:Java 发送邮件

    ylbtech-Java-Runoob-高级教程:Java 发送邮件 1.返回顶部 1. Java 发送邮件 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 Java ...

  9. Java发送邮件--web.xml配置,Java代码配置

    前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...

  10. Java发送邮件示例

    利用Java发送邮件示例: 1.发送QQ邮件 import java.util.Properties; import javax.mail.Message; import javax.mail.Mes ...

随机推荐

  1. shell流程控制&函数

    条件 if-then-elif-then-fi if的条件部分经常使用test EXPRESSION或[ EXPRESSION ]实现,test的用法可以参见test if 条件1 #if 条件1;t ...

  2. linux mount 硬盘挂载和卸载

    Linux 挂载 [root@whp6 ~]# mount /dev/sdb5 /mnt/ [root@whp6 ~]# df -h Filesystem Size Used Avail Use% M ...

  3. Javascript为元素添加事件处理函数

    document.getElementById("test").onclick = function(){ ... };

  4. GTAC 2015将于11月10号和11号召开

    今年的GTAC注册已经结束,将会在11月10号和11号在Google马萨诸塞州剑桥办公室召开.大家可以关注https://developers.google.com/google-test-autom ...

  5. POJ3187Backward Digit Sums[杨辉三角]

    Backward Digit Sums Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6350   Accepted: 36 ...

  6. ApplicationWindow

    本文介绍了一个使用ApplicationWindow 和Action 实现的一个文本编辑器.界面美观,基本功能齐全.代码齐全. 首先看 MainWindow.java. //MainWindow.ja ...

  7. java 22 - 4 多线程的代码实现的方式1

    需求:我们要实现多线程的程序. 如何实现呢? 由于线程是依赖进程而存在的,所以我们应该先创建一个进程出来. 而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程. Java是不能直接调用系统功 ...

  8. javascript里面foreach遍历函数介绍,以及跟jquery里面each的区别

    foreach是把数组从头到尾遍历一遍,有三个参数分别是:数组元素,数组索引,数组本身.如果是一个参数,就是数组元素. var data=[1,2,3,4,5,6]; var sum=0; data. ...

  9. JavaScript Array 对象

    JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...

  10. Integer.parseInt(String s) 和 Integer.valueOf(String s) 的区别

    通过查看java.lang.Integer的源码可以发现, 它们最终调用的都是 /** * Parses the string argument as a signed integer in the ...