网站建设资讯

NEWS

网站建设资讯

java邮件代码,javamail发送邮件

用JAVA写电子邮件服务,求一精炼源代码,学习用!

import java.io.*;

创新互联是一家专业提供融安企业网站建设,专注与成都做网站、成都网站建设、H5响应式网站、小程序制作等业务。10年已为融安众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

import java.util.*;

import java.util.Date;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

public class sendMail {

private MimeMessage mimeMsg; //MIME邮件对象

private Session session; //邮件会话对象

private Properties props; //系统属性

private boolean needAuth = false; //smtp是否需要认证

private String username = ""; //smtp认证用户名和密码

private String password = "";

private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象

/**

*

*/

public sendMail() {

//setSmtpHost(getConfig.mailHost);//如果没有指定邮件服务器,就从getConfig类中获取

createMimeMessage();

}

public sendMail(String smtp){

setSmtpHost(smtp);

createMimeMessage();

}

/**

* @param hostName String

*/

public void setSmtpHost(String hostName) {

System.out.println("设置系统属性:mail.smtp.host = "+hostName);

if(props == null)props = System.getProperties(); //获得系统属性对象

props.put("mail.smtp.host",hostName); //设置SMTP主机

}

/**

* @return boolean

*/

public boolean createMimeMessage()

{

try{

System.out.println("准备获取邮件会话对象!");

session = Session.getDefaultInstance(props,null); //获得邮件会话对象

}

catch(Exception e){

System.err.println("获取邮件会话对象时发生错误!"+e);

return false;

}

System.out.println("准备创建MIME邮件对象!");

try{

mimeMsg = new MimeMessage(session); //创建MIME邮件对象

mp = new MimeMultipart();

return true;

}

catch(Exception e){

System.err.println("创建MIME邮件对象失败!"+e);

return false;

}

}

java 代码发邮件怎么添加附件

实现java发送邮件的过程大体有以下几步:

准备一个properties文件,该文件中存放SMTP服务器地址等参数。

利用properties创建一个Session对象

利用Session创建Message对象,然后设置邮件主题和正文

利用Transport对象发送邮件

需要的jar有2个:activation.jar和mail.jar发送附件,需要用到Multipart对象。

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.activation.FileDataSource;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

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;

import javax.mail.internet.MimeUtility;

public class JavaMailWithAttachment {

private MimeMessage message;

private Session session;

private Transport transport;

private String mailHost = "";

private String sender_username = "";

private String sender_password = "";

private Properties properties = new Properties();

/*

* 初始化方法

*/

public JavaMailWithAttachment(boolean debug) {

InputStream in = JavaMailWithAttachment.class.getResourceAsStream("MailServer.properties");

try {

properties.load(in);

this.mailHost = properties.getProperty("mail.smtp.host");

this.sender_username = properties.getProperty("mail.sender.username");

this.sender_password = properties.getProperty("mail.sender.password");

} catch (IOException e) {

e.printStackTrace();

}

session = Session.getInstance(properties);

session.setDebug(debug);// 开启后有调试信息

message = new MimeMessage(session);

}

/**

* 发送邮件

* @param subject

*            邮件主题

* @param sendHtml

*            邮件内容

* @param receiveUser

*            收件人地址

* @param attachment

*            附件

*/

public void doSendHtmlEmail(String subject, String sendHtml, String receiveUser, File attachment) {

try {

// 发件人

InternetAddress from = new InternetAddress(sender_username);

message.setFrom(from);

// 收件人

InternetAddress to = new InternetAddress(receiveUser);

message.setRecipient(Message.RecipientType.TO, to);

// 邮件主题

message.setSubject(subject);

// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件

Multipart multipart = new MimeMultipart();

// 添加邮件正文

BodyPart contentPart = new MimeBodyPart();

contentPart.setContent(sendHtml, "text/html;charset=UTF-8");

multipart.addBodyPart(contentPart);

// 添加附件的内容

if (attachment != null) {

BodyPart attachmentBodyPart = new MimeBodyPart();

DataSource source = new FileDataSource(attachment);

attachmentBodyPart.setDataHandler(new DataHandler(source));

// 网上流传的解决文件名乱码的方法,其实用MimeUtility.encodeWord就可以很方便的搞定

// 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码

//sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();

//messageBodyPart.setFileName("=?GBK?B?" + enc.encode(attachment.getName().getBytes()) + "?=");

//MimeUtility.encodeWord可以避免文件名乱码

attachmentBodyPart.setFileName(MimeUtility.encodeWord(attachment.getName()));

multipart.addBodyPart(attachmentBodyPart);

}

// 将multipart对象放到message中

message.setContent(multipart);

// 保存邮件

message.saveChanges();

transport = session.getTransport("smtp");

// smtp验证,就是你用来发邮件的邮箱用户名密码

transport.connect(mailHost, sender_username, sender_password);

// 发送

transport.sendMessage(message, message.getAllRecipients());

System.out.println("send success!");

} catch (Exception e) {

e.printStackTrace();

} finally {

if (transport != null) {

try {

transport.close();

} catch (MessagingException e) {

e.printStackTrace();

}

}

}

}

public static void main(String[] args) {

JavaMailWithAttachment se = new JavaMailWithAttachment(true);

File affix = new File("c:\\测试-test.txt");

se.doSendHtmlEmail("邮件主题", "邮件内容", "xxx@XXX.com", affix);//

}

}

怎样用java发送邮件

首先下载 JavaMail jar 包,并导入到项目中。下载地址

编写代码,代码如下:

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class App45 {

public static void main(String[] args) throws AddressException, MessagingException {

Properties properties = System.getProperties();

properties.setProperty("mail.smtp.host", "邮件发送服务器");

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

Session session = Session.getDefaultInstance(properties, new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

// 设置发件人邮件帐号和密码

return new PasswordAuthentication("邮件帐号", "密码");

}

});

MimeMessage message = new MimeMessage(session);

// 设置发件人邮件地址

message.setFrom(new InternetAddress("发件人邮件地址"));

// 设置收件人邮件地址

message.addRecipient(Message.RecipientType.TO, new InternetAddress("收件人邮件地址"));

message.setSubject("这里是邮件主题。");

message.setText("这里是邮件内容。");

Transport.send(message);

}

}

如何使用Java发送qq邮件

方法:

1.前提准备工作:

首先,邮件的发送方要开启POP3 和SMTP服务--即发送qq邮件的账号要开启POP3 和SMTP服务

2.开启方法:

登陆qq邮箱

3.点击 设置

4.点击—-账户

5.找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 —点击开启

6.送短信 —–点击确定

7.稍等一会,很得到一个授权码! –注意:这个一定要记住,一会用到

8.点击保存修改 —OK 完成

9.java 测试代码:

package cn.cupcat.test;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class SendmailUtil {

public static void main(String[] args) throws AddressException, MessagingException {

Properties properties = new Properties();

properties.put("mail.transport.protocol", "smtp");// 连接协议

properties.put("mail.smtp.host", "smtp.qq.com");// 主机名

properties.put("mail.smtp.port", 465);// 端口号

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

properties.put("mail.smtp.ssl.enable", "true");//设置是否使用ssl安全连接 ---一般都使用

properties.put("mail.debug", "true");//设置是否显示debug信息 true 会在控制台显示相关信息

//得到回话对象

Session session = Session.getInstance(properties);

// 获取邮件对象

Message message = new MimeMessage(session);

//设置发件人邮箱地址

message.setFrom(new InternetAddress("123456789@qq.com"));

//设置收件人地址 message.setRecipients( RecipientType.TO, new InternetAddress[] { new InternetAddress("987654321@qq.com") });

//设置邮件标题

message.setSubject("这是第一封Java邮件");

//设置邮件内容

message.setText("内容为: 这是第一封java发送来的邮件。");

//得到邮差对象

Transport transport = session.getTransport();

//连接自己的邮箱账户

transport.connect("123456789@qq.com", "vvctybgbvvophjcj");//密码为刚才得到的授权码

//发送邮件 transport.sendMessage(message, message.getAllRecipients());

}

}

10.运行就会发出邮件了。。。。

下面是我收到邮件的截图,当然我把源码中的邮件地址都是修改了,不是真实的,你们测试的时候,可以修改能你们自己的邮箱。最后,祝你也能成功,如果有什么问题,可以一起讨论!

注意事项

得到的授权码一定要保存好,程序中要使用

Java发送邮件

JAVA邮件发送的大致过程是这样的的:

1、构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法。此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利。

2、构建一个properties文件,该文件中存放SMTP服务器地址等参数。

3、通过构建的properties文件和javax.mail.Authenticator具体类来创建一个javax.mail.Session。Session的创建,就相当于登录邮箱一样。剩下的自然就是新建邮件。

4、构建邮件内容,一般是javax.mail.internet.MimeMessage对象,并指定发送人,收信人,主题,内容等等。

5、使用javax.mail.Transport工具类发送邮件。


本文标题:java邮件代码,javamail发送邮件
当前URL:http://cdweb.net/article/dsshjcg.html