java代码邮件图片 java图片上传代码

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邮件功能自动发送邮件,outloook可以显示图片,gmail却不显示??

有可能是由于你的图片链接问题,部分邮件客户端会加入安全机制,对于未经认证的网络图片会进行过滤。

建议你把图片地址换成百度或腾讯等知名网站的任意图片,然后尝试发送邮件试试看。

java代码怎么发送HTML页面和附件到邮件,注意不是html格式,是一个已经写好的.html页面,求代码。

发送的邮件内容Tabletrtd邮件内容/td/tr/table 接收的时候会自动转成HTML页面的 发送的时候就像页面排版的内容一样的发过去就好了


网站题目:java代码邮件图片 java图片上传代码
转载注明:http://pwwzsj.com/article/ddoescj.html