Java发邮件代码

合集下载

javamail收发邮件(带附件,正文带图)

javamail收发邮件(带附件,正文带图)

1.邮件1.1 邮件组成部分如果是新邮件就获取,并解析它;邮件是由邮件头和邮件体组成,在邮件头中主要包含了收件人、发件人、主题等等基础信息。

而邮件体中就包括了邮件的正文和附件等内容信息。

下图就是pop3协议下,邮件的大致内容。

1.2 发送邮件(带附件、正文带图片)QQ邮箱为例:需要QQ账号和QQ登录第三方客户端时,密码框的“授权码”(相当于密码)授权码如下获取:代码如下:public class JavaMailboxAttachment {private MimeMessage message;private Session session;private String mailHost = "";private String mailAuth = "";private String mailPort = "";private String sender_username = "";private String sender_password = "";//定义一个Properties 用于存放信息private Properties properties = new Properties();//-------------------------------发信箱---------------------------------------------public JavaMailboxAttachment(String email_type) {try {properties.put("mail.smtp.host",""); //发送邮件服务器//端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587properties.put("mail.smtp.port", "587"); //发送邮件端口号properties.put("mail.smtp.auth", "true");// 此处填写你的账号properties.put("er", "xxxxxxxxx@");// 此处的密码就是前面说的16位STMP授权码properties.put("mail.password", "xxxxxxxxxxxxxxxx");this.mailHost = properties.getProperty("mail.smtp.host");this.mailAuth = properties.getProperty("mail.smtp.auth");this.mailPort = properties.getProperty("mail.smtp.port");this.sender_username = properties.getProperty("er");this.sender_password = properties.getProperty("mail.password");} catch (Exception e) {e.printStackTrace();}// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {// 用户名、密码String userName = properties.getProperty("er");String password = properties.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};session = Session.getInstance(properties,authenticator); //用户验证message = new MimeMessage(session); //将验证成功的session信息,创建一个message 对象。

Java实现outlook服务的邮件发送

Java实现outlook服务的邮件发送

Java实现outlook服务的邮件发送依赖<!-- https:///artifact/javax.mail/mail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>POP3接收String USER_NAME ="*****@";String PASSWORD = "******";public static void receivepop3Email() {String host = "";// change accordinglyString mailStoreType = "pop3";String popPort = "995";Store store = null;// 配置连接信息Properties properties = new Properties();properties.put("mail.store.protocol", mailStoreType);properties.put("mail.pop3.host", host);properties.put("mail.pop3.port", popPort);properties.put("mail.pop3.starttls.enable", "true");try {Session emailSession = Session.getDefaultInstance(properties);//打开调式模式,可看到邮件发送过程中各步骤的详细信息// emailSession.setDebug(true);store = emailSession.getStore("pop3s");store.connect(host, USER_NAME, PASSWORD);Folder emailFolder = store.getFolder("INBOX");emailFolder.open(Folder.READ_ONLY);Message[] messages = emailFolder.getMessages();for (Message msg:messages) {System.out.println(msg.getSubject());}emailFolder.close(true);store.close();} catch (NoSuchProviderException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}finally {if(null != store){try {store.close();} catch (MessagingException e) {e.printStackTrace();}}}}IMAP接收String USER_NAME ="*****@";String PASSWORD = "******";public static void receiveimapEmail() {String host = "";// change accordinglyString mailStoreType = "imap";String popPort = "993";try {// 配置连接信息Properties properties = new Properties();properties.put("mail.store.protocol", mailStoreType);properties.put("mail.imap.host", host);properties.put("mail.imap.port", popPort);properties.put("mail.imap.starttls.enable", "true");Session emailSession = Session.getDefaultInstance(properties);// emailSession.setDebug(true);Store store = emailSession.getStore("imaps");store.connect(host, USER_NAME, PASSWORD);Folder emailFolder = store.getFolder("INBOX");emailFolder.open(Folder.READ_ONLY);Message[] messages = emailFolder.getMessages();for (Message msg:messages) {System.out.println(msg.getSubject());}emailFolder.close(true);store.close();} catch (NoSuchProviderException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}}SMTP发送static String USER_NAME ="****@";static String PASSWORD = "****";public static boolean sendSMTPMail(String to, String text, String title) {String host = "";String mailStoreType = "smtp";String popPort = "587";final Properties props = new Properties();props.put("mail.smtp.auth", "true");props.put("mail.smtp.host", host);props.put("mail.store.protocol", mailStoreType);props.put( "mail.smtp.port", popPort );//开启SSLprops.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.socketFactory.port",popPort);props.put("mail.smtp.socketFactory.fallback","false");try {Session session = Session.getDefaultInstance(props, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(USER_NAME, PASSWORD);//账号密码}});session.setDebug(true);// 创建邮件消息MimeMessage message = new MimeMessage(session);// 设置发件⼈InternetAddress form = new InternetAddress(USER_NAME);message.setFrom(form);// 设置收件⼈InternetAddress toAddress = new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 设置邮件标题message.setSubject(title);// 设置邮件的内容体message.setContent(text, "text/html;charset=UTF-8");// 发送邮件Transport.send(message);return true;} catch (Exception e) {e.printStackTrace();}return false;}插曲: SMTP发送邮件时,第⼀次发送可能会收到如下的报错:OutboundSpamException; Failed to process message due to a permanent exception with message WASCL UserAction verdict is not None 在⽹上查到这是邮箱⼚商的安全策略,出现此异常的同时⼚商会给你发送⼀封确认邮件,只要你登录邮箱并激活该邮件即可使⽤SMTP 发送邮件的功能,邮件内容⼤致如下:。

JavaWeb(十三)使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

JavaWeb(十三)使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

JavaWeb(⼗三)使⽤javamail进⾏发送邮件,(使⽤QQ,163,新浪邮箱服务器) 加油加油。

--WZY⼀、发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协议,默认端⼝,25 POP3:Post Office Protocol 3,即邮局协议,接收邮件的协议,默认端⼝,110 知道了这两个协议,下⾯来说说邮件发送和接收的原理图,分两种,相同邮件(QQ邮箱给QQ邮箱)和不同邮件(QQ邮箱给163邮箱)是不⼀样的。

解释: 为了⽅便起见,将新浪邮箱,list@称为⽤户A,将搜狐邮箱,wangwu@ 称为⽤户B ⽤户A(新浪邮箱,list@)给⽤户B(搜狐邮箱,wangwu@)发送⼀封邮件,那么整个过程就为图中的实线部分,⽤户A通过OutLook(浏览器或者客户端)登录⾃⼰的邮箱帐号,编写邮件,使⽤Smtp协议发送给Sina的邮件服务器中的Smtp服务器(专门⽤来发送的服务器),然后在通过SMTP协议,传输给Sohu的邮件服务器中的Smtp服务器,然后通过Sohu的Smtp服务器将邮件发送给⽤户B的存储设备进⾏存储(每个⽤户都会有⼀个存储空间⽤来存储邮件的),到这⾥,⽤户A就相当于发送成功了,因为已经到达了⽬的地,如果B⽤户需要查看邮件内容,必须通过POP3服务器将从⾃⼰的存储设备中拿到,然后返回到浏览器或者客户端中显⽰。

⽤户B给⽤户A发送⼀封邮件,那么整个过程就为图中的虚线部分,是和A给B发⼀样的步骤 ⽤户A给⼀个同样使⽤新浪邮箱的⽤户C发送⼀封邮件,那么其过程就简单的多了,先通过Smtp服务器,然后smtp服务器会将其发送到⽤户C的存储设备上,A发送邮件就成功了,⽤户C要显⽰⾃⼰邮箱中的邮件,那么就通过POP3服务器从⾃⼰存储设备中拿取所有邮件进⾏查看。

⼆、通过Java代码实现发送邮件 2.1、准备jar包 核⼼:mail.jar 依赖:activation.jar,邮件需要发送附件时使⽤ 2.2、使⽤163邮箱发送邮件 2.2.1、⾸先在163邮箱中注册⼀个帐号。

imap 协议 java代码

imap 协议 java代码

imap 协议 java代码为你提供一个用 Java 编写的简单的 IMAP 客户端示例,用于连接并读取 Gmail 邮箱中的邮件:```javaimport java.io.UnsupportedEncodingException;import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.FetchProfile;import javax.mail.Folder;import javax.mail.Message;import javax.mail.Message.RecipientType;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Store;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeUtility;public class EmailUtil {private String username = null;private String password = null;// 传入自己的邮箱用户名和密码public EmailUtil(String username, String password) {ername = username;this.password = password;}// 创建连接会话public Session createSession(Properties props) {Session session = Session.getInstance(props, new Authenticator() { // 返回用户名密码认证@Overridepublic PasswordAuthentication getPasswordAuthentication() {PasswordAuthentication pa = new PasswordAuthentication(username, password);return pa;}});return session;}// 发送邮件(需设置 SMTP)public void sendMail(Properties props, SendEmailMessage sem) throws Exception {Session session = createSession(props);// 消息Message msg = new MimeMessage(session);msg.setFrom(InternetAddress.parse(MimeUtility.decodeText(sem.getFrom())));msg.setRecipients(RecipientType.TO,InternetAddress.parse(sem.getRecipient()));msg.setSubject(sem.getSubject());msg.setText(sem.getText());msg.setSentDate(new Date());// 发送消息Transport.send(msg);}// 接收邮件(需设置 POP3 或 SAMP)public void receiveMail(Properties props, String protocol) throwsException {Session session = createSession(props);Store store = session.getStore(protocol);store.connect();// 连接Folder inbox = store.getFolder("INBOX");// 进入根目录inbox.open(Folder.READ_WRITE);// 只读方式FetchProfile profile = new FetchProfile();profile.add(FetchProfile.Item.ENVELOPE);// 获取信封Message[] msgs = inbox.getMessages();// 得到所有邮件inbox.fetch(msgs, profile);// 预获取信息// 打印for (int i = 0; i < msgs.length; i++) {System.out.println("发送时间:" + msgs[i].getSentDate());System.out.println("发送人:" + decodeText(msgs[i].getFrom()(0).toString()));System.out.println("大小:" + msgs[i].getSize());System.out.println("标题:" + msgs[i].getSubject());}}private String decodeText(String text) {try {return MimeUtility.decodeText(text);} catch (UnsupportedEncodingException e) {e.printStackTrace();return null;}}}```在上述代码中,首先定义了一个`EmailUtil`类,在类中创建`createSession`方法,用于创建邮件会话。

Java实现发送邮件,图片,附件

Java实现发送邮件,图片,附件

Java实现发送邮件,图⽚,附件1、JavaMail 介绍JavaMail 是sun公司(现以被甲⾻⽂收购)为⽅便Java开发⼈员在应⽤程序中实现邮件发送和接收功能⽽提供的⼀套标准开发包,它⽀持⼀些常⽤的邮件协议,如前⾯所讲的SMTP,POP3,IMAP,还有MIME等。

我们在使⽤JavaMail API 编写邮件时,⽆须考虑邮件的底层实现细节,只要调⽤JavaMail 开发包中相应的API类就可以了。

JavaMail 下载地址:2、JavaMail APIJavaMail API 按照功能可以划分为如下三⼤类:①、创建和解析邮件的API②、发送邮件的API③、接收邮件的API以上三种类型的API在JavaMail 中由多个类组成,但是主要有四个核⼼类,我们在编写程序时,记住这四个核⼼类,就很容易编写出Java邮件处理程序。

Message 类:javax.mail.Message 类是创建和解析邮件的核⼼ API,这是⼀个抽象类,通常使⽤它的⼦类javax.mail.internet.MimeMessage 类。

它的实例对象表⽰⼀份电⼦邮件。

客户端程序发送邮件时,⾸先使⽤创建邮件的 JavaMail API 创建出封装了邮件数据的 Message 对象,然后把这个对象传递给邮件发送API(Transport 类)发送。

客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在Message 类的实例中,客户端程序在使⽤邮件解析API从这个对象中解析收到的邮件数据。

Transport 类:javax.mail.Transport 类是发送邮件的核⼼API 类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如 SMTP 协议,客户端程序创建好Message 对象后,只需要使⽤邮件发送API 得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调⽤它的发送⽅法,就可以把邮件发送给指定的 SMTP 服务器。

java使用httpclient发送postgetputdelete请求

java使用httpclient发送postgetputdelete请求

java使用httpclient发送postgetputdelete请求1.发送POST请求:使用HttpClient发送POST请求非常简单。

需要创建一个HttpClient对象,然后通过HttpPost对象来设置请求的URL和请求体。

接下来,将HttpPost对象传递给HttpClient的execute方法,以执行POST请求。

最后,从HttpResponse对象中获取响应体。

以下是一个示例代码,演示了如何使用HttpClient发送POST请求:```public class HttpClientExamplepublic static void main(String[] args)try// 创建HttpClient对象// 创建HttpPost对象,并设置URL//设置请求体String requestBody = "data=test";StringEntity entity = new StringEntity(requestBody);//执行POST请求//从响应中获取响应体HttpEntity responseEntity = response.getEntity(;String responseBody = EntityUtils.toString(responseEntity);System.out.println(responseBody);} catch (Exception e)e.printStackTrace(;}}```2.发送GET请求:发送GET请求与发送POST请求的过程类似。

只需创建一个HttpGet 对象,并设置请求的URL。

接下来,将HttpGet对象传递给HttpClient 的execute方法,以执行GET请求。

再从HttpResponse对象中获取响应体。

以下是一个示例代码,演示了如何使用HttpClient发送GET请求:```public class HttpClientExamplepublic static void main(String[] args)try// 创建HttpClient对象// 创建HttpGet对象,并设置URL//执行GET请求//从响应中获取响应体String responseBody =EntityUtils.toString(response.getEntity();System.out.println(responseBody);} catch (Exception e)e.printStackTrace(;}}```3.发送PUT请求:发送PUT请求与发送POST请求的方法类似。

java sendgrid 抄送方法 -回复

java sendgrid 抄送方法 -回复

java sendgrid 抄送方法-回复Java SendGrid 抄送方法SendGrid 是一款强大且易于使用的电子邮件服务。

它为开发人员提供了一个简单的方式来发送和接收电子邮件。

在本文中,我们将介绍如何在Java 中使用SendGrid 进行电子邮件抄送。

SendGrid 提供了多种方式来发送电子邮件,包括使用SMTP、Web API 和Java Library。

我们将使用Java Library 来展示如何实现电子邮件抄送功能。

步骤一:设置SendGrid Java Library首先,您需要在您的Java 项目中设置SendGrid Java Library。

您可以通过Maven 或Gradle 添加以下依赖项:<dependency><groupId>com.sendgrid</groupId><artifactId>sendgrid-java</artifactId><version>4.7.4</version></dependency>或者implementation 'com.sendgrid:sendgrid-java:4.7.4'这将添加SendGrid Java Library 到您的项目中。

步骤二:创建SendGrid 对象接下来,您需要在代码中创建SendGrid 对象。

您需要在SendGrid 对象中提供您的SendGrid API 密钥。

import com.sendgrid.SendGrid;import com.sendgrid.SendGridException;public class SendEmail {public static void main(String[] args) {设置SendGrid API 密钥String apiKey = "YOUR_SENDGRID_API_KEY";创建SendGrid 对象SendGrid sendGrid = new SendGrid(apiKey);}}在上面的代码中,您需要将`YOUR_SENDGRID_API_KEY` 替换为您的SendGrid API 密钥。

Java邮件发送功能实现详解:SMTP协议与JavaMail API

Java邮件发送功能实现详解:SMTP协议与JavaMail API

Java邮件发送功能实现详解:SMTP协议与JavaMail API简介在现代社会中,电子邮件已经成为人们日常沟通的重要方式之一。

而在Java编程领域,实现邮件发送功能同样是一项重要的任务。

通过SMTP协议和JavaMail API,我们可以很方便地在Java程序中实现邮件发送功能。

本文将详细介绍如何使用SMTP协议和JavaMail API在Java程序中实现邮件发送功能。

SMTP协议SMTP(Simple Mail Transfer Protocol)是用于邮件传输的协议,它定义了邮件是如何从发件人传送到收件人的过程。

在使用Java实现邮件发送功能时,我们需要理解SMTP协议的工作原理,并按照协议规范来构建和发送邮件。

SMTP协议的工作流程通常包括以下步骤:1. 发件人向SMTP服务器发送邮件;2. SMTP服务器根据收件人的域名查找目标邮件服务器;3. SMTP服务器将邮件传递给目标邮件服务器; 4. 目标邮件服务器将邮件存储在收件人的邮箱中。

JavaMail APIJavaMail API是一组用于处理电子邮件的Java类库,它提供了发送、接收和处理邮件的功能。

通过JavaMail API,我们可以方便地在Java程序中实现各种邮件相关操作,包括发送邮件、接收邮件、附件处理等。

在使用JavaMail API发送邮件时,一般需要按照以下步骤进行: 1. 创建一个邮件会话(Session)对象; 2. 创建一个邮件(Message)对象,并设置发件人、收件人、主题、内容等信息; 3. 创建一个邮件传输(Transport)对象,并连接到SMTP服务器; 4. 发送邮件并关闭连接。

实现Java邮件发送功能下面将以一个简单的示例来演示如何在Java程序中实现邮件发送功能。

假设我们要发送一封包含文本内容的简单邮件。

```java import java.util.Properties; import javax.mail.; import javax.mail.internet.;public class SendEmail { public static void main(String[] args) { final String username =。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java发邮件代码
package mail;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Authenticator;
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.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.mail.internet.MimeMessage.RecipientType;
import org.junit.Test;
public class MailTest {
//发送纯文本邮件
@Test
public void fun1() throws AddressException, MessagingException{ Properties prop = new Properties();
prop.setProperty("mail.host", "");
prop.setProperty("mail.smtp.auth", "true");
Authenticator auth = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
/*帐号为邮箱帐号,密码为邮箱密码,用邮箱密码时可能会报错,
如果报错,将密码换成授权码即可,授权码是用来登录邮件客户端的。

建议用163邮箱测试,如果是QQ邮箱,测试前要开启
SMTP服务,默认是关闭的*/
return new PasswordAuthentication("帐号","密码");
}
};
Session session = Session.getInstance(prop, auth);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("发件人地址"));//如abc@ msg.setRecipients(RecipientType.TO, "收件人地址");
msg.setSubject("测试邮件");
msg.setContent("该封为测试邮件,请忽略!", "text/html;charset=utf-8");
Transport.send(msg);
}
//发送带附件的邮件
@Test
public void fun2() throws AddressException, MessagingException, IOException{
Properties prop = new Properties();
prop.setProperty("mail.host", "");
prop.setProperty("mail.smtp.auth", "true");
Authenticator auth = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("帐号","密码");
}
};
Session session = Session.getInstance(prop, auth);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("发件人地址"));
msg.setRecipients(RecipientType.TO, "收件人地址");
msg.setSubject("测试邮件");
MimeMultipart list = new MimeMultipart();
MimeBodyPart part1 = new MimeBodyPart();
part1.setContent("带附件的邮件测试,请忽略此封邮件~", "text/html;charset=utf-8");
list.addBodyPart(part1);
MimeBodyPart part2 = new MimeBodyPart();
part2.attachFile("D:\\Test\\0.jpg");
//设置文件名并处理中文乱码
part2.setFileName(MimeUtility.encodeText("测试.jpg"));
list.addBodyPart(part2);
msg.setContent(list);
Transport.send(msg);
}
}。

相关文档
最新文档