`

javax.mail邮件发送返回状态吗

 
阅读更多
    项目需要集成邮件发送,之前在.net下写过smtp的邮件发送,好像可以直接获取状态码。在网上找到的javamail发送例子中并未给出如何获取状态码。而且sendMessage方法直接是void没任何返回参数。

      之后在查阅api时终于有所发现

       When sending a message, detailed information on each address that fails is available in an SMTPAddressFailedException chained off the top level SendFailedException that is thrown. In addition, if the mail.smtp.reportsuccess property is set, anSMTPAddressSucceededException will be included in the list for each address that is successful. Note that this will cause a top level SendFailedException to be thrown even though the send was successful.

SMTPAddressFailedException 和SMTPAddressSucceededException 中就包含了状态码



来自:http://blog.csdn.net/mouhk/article/details/8244665


自己写的测试代码


package com.demo.mail;

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.MimeMessage;

import com.sun.mail.smtp.SMTPAddressFailedException;

public class TestSendMail {

	public static void main(String[] args) {
		Properties props = new Properties();
		props.put("mail.smtp.host", "smtp.163.com");
		props.put("mail.smtp.port", 25);
		props.put("mail.smtp.auth", false);
		Authenticator auth = new Authenticator() {
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("$$$$$@163.com",
						"$$$$");
			}
		};
		props.put("mail.smtp.host", "smtp.163.com");
		props.put("mail.smtp.auth", "true");
		props.put("mail.from", "lijie_insist@163.com");
		props.put("mail.smtp.reportsuccess", true);
		Session session = Session.getInstance(props, auth);
		session.setDebug(false);
		try {
			MimeMessage msg = new MimeMessage(session);
			msg.setFrom();
			msg.setRecipients(Message.RecipientType.TO, "461503821@qq.com");
			msg.setSubject("JavaMail hello world example");
			msg.setSentDate(new Date());
			msg.setText("Hello, world!\n");
			Transport.send(msg);
		} catch (SMTPAddressFailedException ex) {
			// 250是发送OK的 捕获到250 Mail OK
			// 550 User not found: 461503821@163.com 550错误 只能获取到Invalid
			// Addresses没有发现这个邮箱
			System.out
					.println("SMTPAddressFailedException---------------------------"
							+ ex.getReturnCode());
			System.out
					.println("SMTPAddressFailedException---------------------------"
							+ ex.getCause().getMessage());
		} catch (MessagingException mex) {
			System.out.println("MessagingException------" + mex.getMessage());
		}

	}
}
分享到:
评论

相关推荐

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

    最后,使用 `Transport.send()` 方法将邮件发送出去。 接收邮件时,我们通常使用 IMAP 协议,因为它支持离线模式,并且可以管理邮箱中的邮件状态,比如未读或已读。创建 `Store` 对象后,通过 `getStore("imap")` ...

    邮箱代码实现过程详细

    以上就是从给定的文件信息中提取到的关于邮件发送功能实现的知识点,涵盖了Java邮件发送的基本概念、关键属性、构造方法、发送逻辑以及状态返回等各个方面,为理解和实现基于Java的邮件发送功能提供了全面的指导。

    JavaMail-收发邮件支持包

    在 JavaMail 中,`javax.mail.Transport` 类是负责邮件发送的核心类。 **POP3(Post Office Protocol version 3)** 是一种下载邮件的协议,用户可以从邮件服务器上获取邮件。JavaMail 的 `javax.mail.Folder` 和 `...

    Java查询OutLook邮件代码

    在IT行业中,Java是一种广泛应用的...根据具体需求,可能还需要处理更多细节,如邮件过滤、邮件分类、邮件发送状态跟踪等。在实际开发中,要根据实际情况选择合适的库和策略,以实现高效、稳定和安全的邮件处理功能。

    非常好的东西-javamail

    JavaMail库的强大之处在于它的灵活性和广泛的支持,无论是简单的邮件发送还是复杂的邮件服务器交互,都能得心应手。同时,结合JAF,JavaMail还能处理多种MIME类型的邮件内容,使其在处理多媒体邮件时表现出色。 总...

    java发送邮件功能

    后端接收到请求后,使用Java Mail API发送邮件,并返回相应的状态信息。 需要注意的是,实际项目中为了安全性和用户体验,可能还需要处理错误情况、验证输入、使用HTTPS等。同时,如果你的Java应用部署在像Tomcat...

    JSP+SERVLET+JAVAMAIL

    - `javax.mail.Transport`:用于发送邮件,调用其`send()`方法将邮件发送到指定的SMTP服务器。 - `javax.mail.Message`:代表一个邮件,包含所有邮件属性,如发件人、收件人、主题和正文等。 - `javax.mail.internet...

    邮件的收发.pptx

    #### 六、邮件发送程序示例 假设要使用JavaMail发送一封带有附件的邮件: 1. **创建Session对象**:包含邮件服务器的网络连接信息。 2. **创建Message对象**:构建邮件内容,包括主题、正文、收件人等信息。 3. **...

    Java Socket Email 发送接收

    Java Socket电子邮件发送与接收是基于Java网络编程技术实现的一种通信方式,主要涉及到Java的Socket类以及Email相关的API。本项目是一个课程项目,开发者通过几天的努力完成了一个具备图形用户界面(GUI)的邮件系统...

    jsp-email.rar_email send java jsp_jsp email_jsp 邮件_邮件 jsp_邮件 附件

    Servlet发送完邮件后,可以返回一个响应到JSP,告知用户邮件发送成功或失败。这可以通过设置HTTP响应状态码和消息来实现。 10. **安全注意事项** 为了安全起见,确保正确处理用户输入,避免SQL注入和跨站脚本攻击...

    java电子邮件系统相关知识

    然后,创建`Message`对象,填充邮件内容(发件人、收件人、主题和正文),最后通过`Transport.send()`方法将邮件发送出去。 2. **POP3协议**:POP3主要用于从邮件服务器下载邮件。JavaMail API提供了`javax.mail....

    java邮箱和手机发送链接和验证码

    要向邮箱发送激活码或链接,我们需要使用`javax.mail`包中的类,如`Session`、`Message`、`Transport`等。首先设置SMTP服务器的相关属性,然后创建`MimeMessage`对象,填充发件人、收件人、主题和内容,最后通过`...

    多线程发邮件MailThreadCallble学习资料分享c

    4. **邮件发送**:在Java中,通常使用`javax.mail`库来发送邮件。该库提供了`Session`、`Message`、`Transport`等类来设置邮件服务器参数、构建邮件内容和发送邮件。多线程发送邮件时,每个线程会负责一个或多个邮件...

    java企业快信

    邮件服务通常使用SMTP(Simple Mail Transfer Protocol)协议来发送邮件。在Java中,我们可以使用JavaMail API来实现这一功能。首先,我们需要在项目中引入JavaMail的相关依赖库,如javax.mail和javax.mail-api。...

    java实现系统捕获异常发送邮件案例

    `Developer`枚举类则是用来定义邮件发送者的姓名和邮箱地址。使用枚举可以确保只有预定义的发件人可以被使用,提高了代码的可维护性和安全性。`getMail`方法根据发件人姓名返回对应的邮箱地址,便于在发送邮件时定位...

    java mail client

    UI 的实现可以采用 Swing 或 JavaFX 等框架,以便更友好地收集用户的输入信息,如邮箱地址、密码等,并展示邮件发送的状态。 ##### 3. 异常处理 Java Mail Client 需要妥善处理各种异常情况,如网络不可达、邮件...

    jsp入门课件

    主要涉及`javax.mail`和`javax.mail.internet`包。 2. **SMTP(Simple Mail Transfer Protocol)**:JavaMail通常使用SMTP协议发送邮件,需要设置SMTP服务器地址、用户名和密码。 3. **邮件组件**:包括`Session`...

    TestNotification

    例如,在Java中,可以使用`java.util.Timer`和`java.util.TimerTask`进行定时通知,或者利用`javax.mail`库发送邮件通知。在iOS开发中,使用`UNUserNotificationCenter`处理本地和远程通知。在Android中,可以使用`...

    基于jsp+servlet的稿件处理系统

    开发者可以通过配置SMTP服务器信息,创建邮件对象,设置收件人、主题和正文,然后调用发送方法,将邮件发送出去。 4. **用户注册和登录**:系统提供用户注册功能,用户可以创建自己的账号,填写必要的个人信息。...

    惠普 HP笔试题/口试题

    11. 发送邮件附件:MIME (Multipurpose Internet Mail Extensions) 协议用于发送包含非ASCII字符或附件的电子邮件。 12. Java 多线程模型:Java中可以通过实现Runnable接口或继承Thread类来创建多线程。 13. Java ...

Global site tag (gtag.js) - Google Analytics