`

Javamail 邮件回复

    博客分类:
  • JAVA
阅读更多
邮件的回复的代码很简单,在迭代邮件的信息的时候调用MimeMessage reply = (MimeMessage) messages[i].reply(Boolean )  TRUE 是邮件回复给发送者,FALSE恢复给所有人。如果要回复到新的收件人请使用SetReply-to。
同时可以使用 reply.setSubject(“***”)设置回复的标题,不设置的话默认是Re: 加上接收到邮件的标题。同理,也可以自己设置正文内容。
这里一定要设置发送邮件的地址,而且必须要和邮件认证的用户名一致,不然会报错。
最后调用Transport.send(reply)将邮件发出去
注意:1、reply.setFrom() 必须要设置而且要和邮件认证的用户名一致,不然会报以下错误:
com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be same as authorization user
2、建议使用邮件认证登陆邮件服务器,不然会出现以下错误:
javax.mail.AuthenticationFailedException: failed to connect, no password specified?
3、代码虽然很简单,但是程序难免会出现各种异常。如果大家在调试程序的时候出现错误,请给我留言。


给一个成功例子大家参考:.
import java.io.*;
  import java.util.*;
 
  import javax.mail.*;
  import javax.mail.internet.*;
 
  public class ReplyMail {
 
     private static final String HOST_NAME = "pop.qq.com";
     private static final String SEND_HOST_NAME = "smtp.qq.com";
     private static final String PASSWORD = "*******";
     private static final String EMAIL_FROM = "flyingsam@qq.com";
     private static final String USER_NAME = "flyingsam@qq.com";
     private static final String PROTOCOL = "pop3";
     private static final String SEND_PROTOCOL = "smtp";
     
     public static void listMail() throws Exception {
         Properties props = new Properties();
         props.put("mail.smtp.host", SEND_HOST_NAME);
         props.put("mail.pop.host", HOST_NAME);
         props.put("mail.transport.protocol","smtp");
         props.put("mail.smtp.auth", "true");
 
         
         Session session = Session.getDefaultInstance(props, new SimpleAuthenticator(USER_NAME, PASSWORD));     
         Store store = session.getStore(ReplyMail.PROTOCOL);   
         store.connect(HOST_NAME, USER_NAME, PASSWORD);
         Folder folder = store.getFolder("INBOX");
         folder.open(Folder.READ_ONLY);  
         Message[] messages = folder.getMessages();   
         InternetAddress address;   
         for (int i = messages.length-1; i >= 0; i--) {   
             address = (InternetAddress)messages[i].getFrom()[0];   
             if(address != null) {   
                 System.out.println(address.getPersonal());   
             } 
             if (null != address && "秋天的童话".equals(address.getPersonal())) {   
                 System.out.println("第" + i + "个:" + messages[i].getSubject());   
                 MimeMessage replyMessage = (MimeMessage) messages[i].reply(false);   
  //                replyMessage.setFrom(new InternetAddress(EMAIL_FROM));
  
                 replyMessage.setRecipients(MimeMessage.RecipientType.TO, address.getAddress());
                 replyMessage.setText("这是回复邮件,不知道能否成功!");  
                 replyMessage.saveChanges();
                 Transport transport = session.getTransport("smtp");
                 transport.connect(SEND_HOST_NAME,  USER_NAME, PASSWORD);
                 transport.send(replyMessage);
                 System.out.println("回复成功");                
             }   
         } 
         folder.close(true);   
         store.close();
     }
     
     public static void main(String[] args) {
         try {
             ReplyMail.listMail();
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
 }


类SimpleAuthenticator的代码:
public class SimpleAuthenticator extends Authenticator {
     
     private String username;
     
     private String password;
     
     public SimpleAuthenticator(String username, String password) {
         this.username = username;
         this.password = password;
     }
 
     public PasswordAuthentication getPasswordAuthentication() {    
         return new PasswordAuthentication(this.username, this.password);
 
     }
     
 }
分享到:
评论

相关推荐

    javaMail发送、接受、回复、转发等功能

    JavaMail 是一个强大的开源库,它为Java程序员提供了一种标准API来处理电子邮件的发送、接收、回复和转发等操作。这个库支持多种邮件协议,包括SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问...

    javamail邮件管理系统

    JavaMail邮件管理系统是一款基于Java技术实现的邮件服务应用程序,它利用SMTP(Simple Mail Transfer Protocol)协议来发送邮件,以及IMAP(Internet Message Access Protocol)协议来接收和管理邮件。这两个协议是...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    JavaMail 是一个强大的 Java 库,它允许开发者在应用程序中实现电子邮件的发送和接收功能。这个库支持多种邮件协议,如 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于...

    Java web中javamail邮件发送实现案例.docx

    在Java Web开发中,使用JavaMail API可以实现邮件的发送和接收功能。JavaMail是一个开源库,它提供了标准的API来处理SMTP(简单邮件传输协议)和其他邮件协议,使得开发者能够在应用程序中方便地发送和接收电子邮件...

    完整的javamail发送邮件源码

    10. 邮件头信息:除了基本的发件人、收件人信息外,邮件头还可以包含优先级、回复地址、日期等信息。这些可以通过`Message`类的方法进行设置,如`setFrom()`, `setRecipient()`, `setSubject()`等。 在提供的...

    javamail邮件提醒

    JavaMail邮件提醒是一种在Java应用程序中发送电子邮件通知的方式,尤其适用于构建会议提醒系统。通过JavaMail,开发者可以创建和发送包含会议详情的邮件,确保收件人能够及时收到并处理这些提醒。 JavaMail是一个...

    关于JavaMail和James邮件基础

    在JavaMail中,回复邮件通常涉及以下几个步骤: 1. 加载原始邮件,获取其Message对象。 2. 创建新的Message对象,设置回复标识,如 `message.setFlag(Flags.Flag.REPLY, true);`。 3. 设置回复的主题,通常会在原...

    javamail发送html邮件

    JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和接收电子邮件。 #### 二、发送 HTML 格式的邮件 在实际应用中,经常需要...

    javamail.jar,javamail资源包

    通过它的API,开发者可以实现定制化的邮件服务,如自动回复、邮件通知、邮件订阅等。对于企业级应用来说,JavaMail是一个强大且灵活的工具,极大地简化了邮件处理的复杂性。在开发过程中,务必遵循JavaMail的文档,...

    java发送邮件 javaMail

    - 为了防止被标记为垃圾邮件,最好设置合理的发件人和回复地址,并遵循邮件发送的最佳实践。 以上就是使用JavaMail发送邮件的基本原理和操作步骤。通过这个库,开发者可以灵活地构建复杂的邮件功能,如定时发送、...

    JavaMail_API基本原理

    - 回复和转发:基于原始邮件创建新的Message。 - 操作附件:发送和接收MIME类型的附件,包括HTML消息和嵌入的图片。 - 搜索:使用SearchTerm在邮件集合中查找特定条件的邮件。 5. **协议限制** JavaMail API ...

    基于Javamail的邮件收发系统毕设(源码+使用文档)

    用户设置:允许用户配置邮件签名、自动回复等个性化设置。 技术架构 Java:作为主要编程语言,提供稳定的开发环境。 Javamail API:用于实现邮件的发送和接收功能。 数据库:可选,用于存储用户配置、邮件元数据等...

    javamail发邮件

    11. **邮件头信息**:邮件头包含许多元数据,如日期、优先级、回复地址等。`Message`类提供了多种`getHeader()`和`setHeader()`方法来操作这些信息。 12. **邮件过滤和搜索**:通过`Folder`对象,可以对邮件进行...

    基于Javamail的邮件收发系统(系统+LW+开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    JavaMail 是一个强大的开源库,用于在Java应用程序中实现电子邮件...总的来说,这个压缩包提供了一个完整的JavaMail邮件系统开发实例,对于学习和理解JavaMail API的使用,以及构建实际的邮件应用具有很高的参考价值。

    JavaMail开发手册

    JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中处理电子邮件。...通过深入学习,开发者可以实现复杂的邮件服务,如自动回复、邮件订阅、邮件通知等,广泛应用于企业级应用和自动化任务中。

    javamail发送邮件的简单实例[参照].pdf

    在JavaMail 中,开发者可以实现包括创建、发送、读取、回复和转发邮件在内的多种功能。下面将详细介绍如何使用JavaMail 发送邮件,以及相关的关键知识点。 首先,我们需要配置邮件发送者的信息。`MailSenderInfo....

    基于Javamail的邮件收发系统(系统+论文+开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    客户端可能使用Swing或JavaFX等库来创建用户友好的界面,让用户能够输入邮件信息并发送,同时也可以查看、回复和管理邮件。服务器端则通过与邮件服务器的交互,完成邮件的发送和接收操作。 论文部分是该项目的理论...

    Java毕业设计-基于Javamail的邮件收发系统(系统+论文+开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    例如,可以增加对多种邮件协议的支持,提升邮件处理的速度和效率,或者添加新的用户交互功能,如邮件过滤、自动回复等。此外,系统采用了模块化的设计思想,使得各个功能模块之间的耦合度较低,便于维护和升级。 该...

    Java通过Exchange协议发送和接收邮件

    本示例着重讲解如何利用Java结合Microsoft的Exchange协议实现邮件功能,具体涉及的知识点包括JavaMail API以及微软的EWS(Exchange Web Services)Java API。 首先,JavaMail API是一个开源的Java库,它允许开发...

    JavaMail_简易教程

    - **回复消息**:创建新的邮件,并将其作为原始邮件的回复发送。 - **转发消息**:将收到的消息转发给其他收件人。 - **操作附件**:发送和获取邮件附件,支持多种格式。 - **处理HTML消息**:支持在邮件中包含HTML...

Global site tag (gtag.js) - Google Analytics