`

发送和接收Gmail邮件 Java 源码

阅读更多
发送邮件代码:
import java.security.Security;   
import java.util.Date;   
import java.util.Properties;   
  
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;   
  
/**  
 * 使用Gmail发送邮件  
 * @author Winter Lau  
 */  
public class GmailSender {   
  
 public static void main(String[] args) throws AddressException, MessagingException {   
  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());   
  final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";   
  // Get a Properties object   
  Properties props = System.getProperties();   
  props.setProperty("mail.smtp.host", "smtp.gmail.com");   
  props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);   
  props.setProperty("mail.smtp.socketFactory.fallback", "false");   
  props.setProperty("mail.smtp.port", "465");   
  props.setProperty("mail.smtp.socketFactory.port", "465");   
  props.put("mail.smtp.auth", "true");   
  final String username = "[邮箱帐号]";   
  final String password = "[邮箱密码]";   
  Session session = Session.getDefaultInstance(props, new Authenticator(){   
      protected PasswordAuthentication getPasswordAuthentication() {   
          return new PasswordAuthentication(username, password);   
      }});   
  
       // -- Create a new message --   
  Message msg = new MimeMessage(session);   
  
  // -- Set the FROM and TO fields --   
  msg.setFrom(new InternetAddress(username + "@mo168.com"));   
  msg.setRecipients(Message.RecipientType.TO,   
    InternetAddress.parse("[收件人地址]",false));   
  msg.setSubject("Hello");   
  msg.setText("How are you");   
  msg.setSentDate(new Date());   
  Transport.send(msg);   
     
  System.out.println("Message sent.");   
 }   
}  


接收邮件代码:
import java.io.UnsupportedEncodingException;   
import java.security.*;   
import java.util.Properties;   
import javax.mail.*;   
import javax.mail.internet.InternetAddress;   
import javax.mail.internet.MimeUtility;   
  
/**  
 * 用于收取Gmail邮件  
 * @author Winter Lau  
 */  
public class GmailFetch {   
    
 public static void main(String argv[]) throws Exception {   
  
  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());   
  final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";   
  
  // Get a Properties object   
  Properties props = System.getProperties();   
  props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);   
  props.setProperty("mail.pop3.socketFactory.fallback", "false");   
  props.setProperty("mail.pop3.port", "995");   
  props.setProperty("mail.pop3.socketFactory.port", "995");   
  
  //以下步骤跟一般的JavaMail操作相同   
  Session session = Session.getDefaultInstance(props,null);   
  
  //请将红色部分对应替换成你的邮箱帐号和密码   
  URLName urln = new URLName("pop3","pop.gmail.com",995,null,   
    "[邮箱帐号]", "[邮箱密码]");   
  Store store = session.getStore(urln);   
  Folder inbox = null;   
  try {   
   store.connect();   
   inbox = store.getFolder("INBOX");   
   inbox.open(Folder.READ_ONLY);   
   FetchProfile profile = new FetchProfile();   
   profile.add(FetchProfile.Item.ENVELOPE);   
   Message[] messages = inbox.getMessages();   
   inbox.fetch(messages, profile);   
   System.out.println("收件箱的邮件数:" + messages.length);   
   for (int i = 0; i < messages.length; i++) {   
    //邮件发送者   
    String from = decodeText(messages[i].getFrom()[0].toString());   
    InternetAddress ia = new InternetAddress(from);   
    System.out.println("FROM:" + ia.getPersonal()+'('+ia.getAddress()+')');   
    //邮件标题   
    System.out.println("TITLE:" + messages[i].getSubject());   
    //邮件大小   
    System.out.println("SIZE:" + messages[i].getSize());   
    //邮件发送时间   
    System.out.println("DATE:" + messages[i].getSentDate());   
   }   
  } finally {   
   try {   
    inbox.close(false);   
   } catch (Exception e) {}   
   try {   
    store.close();   
   } catch (Exception e) {}   
  }   
 }   
    
 protected static String decodeText(String text)   
   throws UnsupportedEncodingException {   
  if (text == null)   
   return null;   
  if (text.startsWith("=?GB") || text.startsWith("=?gb"))   
   text = MimeUtility.decodeText(text);   
  else  
   text = new String(text.getBytes("ISO8859_1"));   
  return text; 
 }  
}  


来源于互联网,属于个人收藏
分享到:
评论

相关推荐

    java邮件发送源码

    JavaMail API是Java平台上的标准库,用于处理电子邮件的发送和接收。本篇将详细讲解如何利用JavaMail API进行邮件发送,并结合提供的"javamail2"压缩包中的源码进行分析。 首先,JavaMail API主要包括两个主要的...

    邮件邮箱发送接收源码

    在提供的压缩包文件"mailUtil-master"中,可能包含了一个邮件工具类库,这个库封装了上述发送和接收邮件的逻辑。开发者可以查看源代码,学习如何实现邮件功能,或者直接在自己的项目中使用这个库。 总的来说,理解...

    java发送邮件源码

    它提供了创建、发送和接收邮件的能力。在使用JavaMail发送邮件前,你需要在项目中引入JavaMail相关的依赖,如`javax.mail`和`javax.mail-api`。这两个库通常可以通过Maven或Gradle等构建工具添加到你的项目中。 ...

    用java mail发邮件源码,支持多种邮局,支持单发和群发

    这个源码可能包含了一套完整的解决方案,可以与多种邮局(如Gmail, Yahoo, Hotmail等)进行交互,并且支持单个收件人和多个收件人的邮件发送功能。下面将详细讲解Java Mail API的使用及其核心概念。 首先,Java ...

    Android系统使用JAVA MAIL进行邮件收发源码及使用到的LIB包

    在Android系统中,Java Mail API是一个强大的库,用于处理电子邮件的发送和接收。这个API不仅支持Gmail,还可以处理其他邮件服务提供商的邮件通信。在本文中,我们将深入探讨如何在Android环境中使用Java Mail API来...

    Android 发送电子邮件 EMAIL 源码

    3. **设置邮件属性**:包括发件人、收件人、主题和邮件正文。在`Message`对象中设置这些属性。 4. **连接和发送邮件**:使用`Properties`对象配置网络连接参数,然后通过`Session`对象建立与SMTP服务器的连接,并...

    Java发邮件源码及jar包

    JavaMail API是Java平台上的标准邮件接口,它允许Java应用程序通过SMTP(简单邮件传输协议)或其他邮件协议(如POP3或IMAP)来发送和接收电子邮件。这个工程中提供的jar包可能包括`javax.mail`和`javax.mail-api`,...

    发邮件(加附件) java 源码

    它提供了丰富的类和接口,可以用来创建、发送和接收邮件。要使用JavaMail,需要在项目中引入对应的依赖,例如通过Maven或Gradle。对于Maven用户,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    javaMail发送邮件依赖的jar包源码整理

    JavaMail 是一个开源的 Java API,它允许 Java 程序员通过 SMTP、POP3、IMAP 协议发送和接收电子邮件。这个“javaMail发送邮件依赖的jar包源码整理”提供了关于如何使用 JavaMail 发送邮件以及相关库的源代码,这...

    JavaMail邮件发送源码 非常简单

    JavaMail是一种在Java应用程序中发送和接收电子邮件的标准API,它为开发者提供了强大的功能,使得处理邮件变得简单而高效。在JavaMail中,我们主要利用 javax.mail 和 javax.mail.internet 这两个包中的类来实现邮件...

    用javamail实现邮件发送-完整源码

    JavaMail 是一个开源库,它提供了在 Java 应用程序中发送和接收电子邮件的功能。这个压缩包中的资源可能包括了实现这一功能所需的全部源代码,让你能够直接在自己的项目中集成邮件发送功能,无需额外付费。 ...

    申请和配置Google Apps邮件服务器,附带JAVA MAIL邮件发送系统

    Google Workspace提供了专业的电子邮件服务,允许用户使用自定义域名(如yourdomain.com)来发送和接收邮件,而不是使用常规的@gmail.com地址。 在配置过程中,你需要完成以下步骤: 1. **注册账户**:首先访问...

    发送普通文本格式的E-mail的java源码

    JavaMail API是一个开源库,允许开发者在Java应用程序中处理邮件的发送和接收。以下是一些关于如何使用Java发送普通文本格式电子邮件的关键知识点: 1. **导入依赖**:首先,你需要在项目中引入JavaMail的相关库。...

    gmail邮件处理

    标题 "Gmail邮件处理" 涉及到的是如何与Google的Gmail服务进行交互,以便发送、接收或管理电子邮件。这通常涉及到编程接口(API)的使用,特别是Google的Gmail API。Gmail API允许开发者构建应用来访问和操作用户...

    java邮件项目源代码

    它是一套接口和类,允许Java应用程序创建、发送和接收电子邮件。在项目中,你需要导入`javax.mail`和`javax.mail.internet`这两个包。 1. **配置邮件服务**:在Java中发送邮件,首先需要设置邮件服务器的相关属性,...

    java实现邮件发送html源码范例(由浅入深代码范例和详细说明).docx

    JavaMail 是一个强大的开源库,用于在 Java 应用程序中处理电子邮件的发送和接收。在 Java 中发送 HTML 格式的邮件,JavaMail 提供了简单而灵活的接口。HTML 邮件允许我们创建具有丰富格式和样式的邮件内容,比如...

    JavaMail应用实例说明:简单(HTML)邮件的发送 javaMail基础教程下载

    JavaMail是一种广泛使用的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。这个教程主要关注的是如何使用JavaMail发送简单的HTML邮件,这在现代应用程序中非常常见,因为HTML邮件可以提供更丰富的格式和...

    发送信件.源码

    Java Email 发邮件是一种常见的任务,尤其在自动化通知、系统间通信或者用户服务中...源码"的压缩包是学习和实践Java邮件发送的一个宝贵资源,通过分析和运行其中的代码,你可以更好地理解和掌握Java发送邮件的全过程。

    AndroidGmail备份手机短信源码.zip

    2. `SmsManager`:这是Android提供的一个类,允许应用程序发送和接收短信。在备份短信时,可能需要获取短信内容,这可以通过查询`SmsProvider`实现。 3. `SQLite`:Android设备上短信数据存储在SQLite数据库中,每个...

    Android Gmail备份手机短信源码.rar

    ContentResolver用于查询和读取短信数据库,而SmsManager则提供了发送和接收短信的API。备份过程通常涉及到遍历SMS表,获取每条短信的内容,然后通过网络接口(如Gmail API)将数据发送到云端。 Gmail API是Google...

Global site tag (gtag.js) - Google Analytics