热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javamail,javamail发送邮件使用协议

本文目录一览:1、javamail客户端需要开25端口么

本文目录一览:


  • 1、javamail客户端需要开25端口么


  • 2、怎么用javamail 通过http代理发邮件


  • 3、怎么样使用JavaMail发送和接收邮件


  • 4、关于javamail


  • 5、请大神们帮忙看看,javamail邮件发送不了这了么解决


  • 6、javamail 验证用户名密码

javamail客户端需要开25端口么

不需要。

根据博客数据显示,Javamail将始终使用原始测试电子邮件的端口不需要25端口。

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。

怎么用javamail 通过http代理发邮件

代码如下:

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.Message.RecipientType;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class EmailTest {

public static void main(String[] args) throws Exception{

Properties props = new Properties();

props.setProperty("mail.smtp.auth", "true");

props.setProperty("mail.transport.protocol", "smtp");

props.setProperty("mail.host", "smtp.163.com");

Session session = Session.getInstance(props,

new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication(){

return new PasswordAuthentication("xxx","xxx");//这里分别填写发送email的用户名、密码

}

}

);

session.setDebug(true);

Message msg = new MimeMessage(session);

msg.setFrom(new InternetAddress("xxx"));//这里是发送方的email地址如:xxx@163.com

msg.setSubject("test javamail");

msg.setRecipients(RecipientType.TO,

InternetAddress.parse("xxx"));//这里是接收方的email地址如:xxx@163.com

msg.setContent("谷歌","text/html;charset=gb2312");

Transport.send(msg);

}

}

怎么样使用JavaMail发送和接收邮件

public class MailTest {

//发送的邮箱 内部代码只适用qq邮箱

private static final String USER = "xxxxx@qq.com";

//授权密码 通过QQ邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-开启POP3/SMTP服务获取

private static final String PWD = "xxxxx";

private String[] to;

private String[] cc;//抄送

private String[] bcc;//密送

private String[] fileList;//附件

private String subject;//主题

private String content;//内容,可以用html语言写

public void sendMessage() throws Exception {

// 配置发送邮件的环境属性

final Properties props = new Properties();

//下面两段代码是设置ssl和端口,不设置发送不出去。

props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

//props.setProperty("mail.smtp.port", "465");

props.setProperty("mail.smtp.socketFactory.port", "465");

// 表示SMTP发送邮件,需要进行身份验证

props.setProperty("mail.transport.protocol", "smtp");// 设置传输协议

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.host", "smtp.qq.com");//QQ邮箱的服务器 如果是企业邮箱或者其他邮箱得更换该服务器地址

// 发件人的账号

props.put("mail.user", USER);

// 访问SMTP服务时需要提供的密码

props.put("mail.password", PWD);

// 构建授权信息,用于进行SMTP进行身份验证

Authenticator authenticator = new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

// 用户名、密码

String userName = props.getProperty("mail.user");

String password = props.getProperty("mail.password");

return new PasswordAuthentication(userName, password);

}

};

// 使用环境属性和授权信息,创建邮件会话

Session mailSession = Session.getInstance(props, authenticator);

// 创建邮件消息

MimeMessage message = new MimeMessage(mailSession);

BodyPart messageBodyPart = new MimeBodyPart();

Multipart multipart = new MimeMultipart();

// 设置发件人

InternetAddress form = new InternetAddress(

props.getProperty("mail.user"));

message.setFrom(form);

//发送

if (to != null) {

String toList = getMailList(to);

InternetAddress[] iaToList = new InternetAddress().parse(toList);

message.setRecipients(RecipientType.TO, iaToList); // 收件人

}

//抄送

if (cc != null) {

String toListcc = getMailList(cc);

InternetAddress[] iaToListcc = new InternetAddress().parse(toListcc);

message.setRecipients(RecipientType.CC, iaToListcc); // 抄送人

}

//密送

if (bcc != null) {

String toListbcc = getMailList(bcc);

InternetAddress[] iaToListbcc = new InternetAddress().parse(toListbcc);

message.setRecipients(RecipientType.BCC, iaToListbcc); // 密送人

}

message.setSentDate(new Date()); // 发送日期 该日期可以随意写,你可以写上昨天的日期(效果很特别,亲测,有兴趣可以试试),或者抽象出来形成一个参数。

message.setSubject(subject); // 主题

message.setText(content); // 内容

//显示以html格式的文本内容

messageBodyPart.setContent(content,"text/html;charset=utf-8");

multipart.addBodyPart(messageBodyPart);

//保存多个附件

if(fileList!=null){

addTach(fileList, multipart);

}

message.setContent(multipart);

// 发送邮件

Transport.send(message);

}

public void setTo(String[] to) {

this.to = to;

}

public void setCc(String[] cc) {

this.cc = cc;

}

public void setBcc(String[] bcc) {

this.bcc = bcc;

}

public void setSubject(String subject) {

this.subject = subject;

}

public void setContent(String content) {

this.cOntent= content;

}

public void setFileList(String[] fileList) {

this.fileList = fileList;

}

private String getMailList(String[] mailArray) {

StringBuffer toList = new StringBuffer();

int length = mailArray.length;

if (mailArray != null length 2) {

toList.append(mailArray[0]);

} else {

for (int i = 0; i length; i++) {

toList.append(mailArray[i]);

if (i != (length - 1)) {

toList.append(",");

}

}

}

return toList.toString();

}

//添加多个附件

public void addTach(String fileList[], Multipart multipart) throws Exception {

for (int index = 0; index fileList.length; index++) {

MimeBodyPart mailArchieve = new MimeBodyPart();

FileDataSource fds = new FileDataSource(fileList[index]);

mailArchieve.setDataHandler(new DataHandler(fds));

mailArchieve.setFileName(MimeUtility.encodeText(fds.getName(),"UTF-8","B"));

multipart.addBodyPart(mailArchieve);

}

}

//以下是演示demo

public static void main(String args[]) {

MailTest mail = new MailTest();

mail.setSubject("java邮件");

mail.setContent("你好 这是第一个java 程序发送邮件");

//收件人 可以发给其他邮箱(163等) 下同

mail.setTo(new String[] {"xxxxx@qq.com"});

//抄送

// mail.setCc(new String[] {"xxxxx@qq.com","xxxxx@qq.com"});

//密送

//mail.setBcc(new String[] {"xxxxx@qq.com","xxxxx@qq.com"});

//发送附件列表 可以写绝对路径 也可以写相对路径(起点是项目根目录)

// mail.setFileList(new String[] {"D:\\aa.txt"});

//发送邮件

try {

mail.sendMessage();

System.out.println("发送邮件成功!");

} catch (Exception e) {

System.out.println("发送邮件失败!");

e.printStackTrace();

}

}

}

关于javamail

popserver,username,password三者缺一不可。

抛开JAVA Mail。你平时去查E-MAIL时候,是不是应该:1.先上E-MAIL网站(GMail还是Yahoo Mail, HotMail)2.在输入用户名(有的需要加@gmail.com有的直接用用户名就行)和密码

那么你查看E-MAIL或发送E-MAIL使用的客户端其实是别人制作的网页客户端。Java Mail让你开发自己的Java客户端用SMTP(Simple Mail Transfer Protocol)协议或POP3(Post Office Protocol)来收发E-MAIL。那么以上的popserver(服务器),username(用户名),password(密码)都必不可少的。用户名和地址没有本质区别,如:用户名如果是abc,那么地址就是abc@hotmail.com,一样的。

请大神们帮忙看看,javamail邮件发送不了这了么解决

首先要确定发件邮箱已经开启了SMTP服务,有些邮箱开启这个功能会有一个独立的密码,如163邮箱;使用javamail需要使用这个独立的密码进行登录。再者,目前大部分邮箱都需采用TLS加密发送邮件,javamail创建对象时需要加上这个配置。。

javamail 验证用户名密码

        //1. 创建propeties

        Properties props = new Properties();

        props.setProperty("mail.store.protocol", "pop3");    //协议

        props.setProperty("mail.pop3.host", "pop3.163.com"); //主机

        

        try{

            Session session = Session.getDefaultInstance(props);

            Store store = session.getStore();

            store.connect(smtpType, username, password);

        } catch(Exception e) {

            e.printStackTrace();

        }

这里只要connect()方法连接成功就行了,抛出异常则代表验证不通过.


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
author-avatar
手机用户2502853881
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有