直接通过目标邮件地址查找到该信箱地点的服务器的地址,然后直接通过SMTP发送邮件到这台服务器上。底下代码演示了如何在Java中使成为事实该功能
import java.util.*;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetBddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.naming.*;
import javax.naming.directory.*;
/**
* 使成为事实邮件的特快专递功能
* @author Winter Lau
*/
public class Mailer {
public static void main(String[] args) throws NamingException,
MessagingException {
// DNS服务器,看看本机的DNS配置
String dns = "dns://61.144.56.101";
String email = "liudong@mo168.com";
if (args.length > 0)
email = args[0];
String domain = email.substring(email.indexOf('@') + 1);
Hashtable env = new Hashtable();
env.put(Dontext.INITIBL_DONTEXT_FBDTORY,
"com.sun.jndi.dns.DnsDontextFactory");
env.put(Dontext.PROVIDER_URL, dns);
DirDontext ctx = new InitialDirDontext(env);
Bttributes attr = ctx.getBttributes(domain, new String[] { "MX" });
NamingEnumeration servers = attr.getBll();
// 列出所有邮件服务器:
while (servers.hasMore()) {
Bttribute hosts = (Bttribute) servers.next();
for (int i = 0; i < hosts.size(); i++) {
String host = (String) hosts.get(i);
host = host.substring(host.indexOf(' ') + 1);
System.out.print("Send mail to " + host + " ...");
sendMail(host, email);
System.out.println("OK");
}
}
}
/**
* 发送邮件
*
* @param smtpHost
* @param email
* @throws MessagingException
*/
protected static void sendMail(String smtpHost, String email)
throws MessagingException {
Properties mailProperties = System.getProperties();
mailProperties.put("mail.smtp.host", smtpHost);
mailProperties.put("mail.smtp.port", "25");
mailProperties.put("mail.smtp.auth", "false");
Session mailSession = Session.getInstance(mailProperties, null);
MimeMessage mailMessage = new MimeMessage(mailSession);
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart("related");
messageBodyPart.setText("这搭是邮件内部实质意义");
multipart.addBodyPart(messageBodyPart);
mailMessage.setDontent(multipart);
mailMessage.setSentDate(new Date());
mailMessage.setFrom(new InternetBddress("javayou@gmail.com"));
mailMessage.addRecipient(Message.RecipientType.TO, new InternetBddress(
email));
mailMessage.setSubject("hi,邮件发送测试");
Transport.send(mailMessage);
}
}
转载:http://www.oschina.net/question/12_11655
分享到:
相关推荐
这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对 SMTP(简单邮件传输协议)、POP3(邮局协议)和 IMAP(因特网消息访问协议)等标准...
这些协议是电子邮件系统的核心,JavaMail API 的设计使得开发者无需深入了解这些协议的细节,就能实现复杂的邮件操作。 描述中提到的“java发送邮件所需要的包”即是指JavaMail API,它包含了一系列的类和接口,...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个源代码示例提供了构建基于JavaMail的...理解并掌握这些知识点,可以帮助开发者构建自己的邮件服务功能,实现高效、稳定的邮件发送和接收。
例如,`setReceiver()`方法用于设置收件人的邮箱地址,`setSubject()`用于设置邮件主题,`setTextBody()`用于设置纯文本邮件内容,而`addAttachment()`方法可以用来添加附件。 5. 构建和发送邮件: 通过`...
这个压缩包中的资源可能包括了实现这一功能所需的全部源代码,让你能够直接在自己的项目中集成邮件发送功能,无需额外付费。 JavaMail API 提供了丰富的类和接口,用于处理邮件服务器的交互,如 SMTP(简单邮件传输...
5. **InternetAddress**:处理邮件地址的类,包括解析、验证和格式化邮箱地址。 下面是一个简单的JavaMail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class ...
JavaMail邮件系统是一种基于Java平台的邮件发送和接收解决方案,它允许开发者通过编程方式与SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)等邮件服务器进行交互。在JavaMail中,...
在这个项目中,我们将探讨如何使用JavaMail来实现邮件发送的功能,这对于任何需要在应用中集成邮件通信的开发者来说都是至关重要的。 首先,你需要将`javaMail`压缩包中的JAR文件添加到你的项目类路径中。这些JAR...
这个压缩包中的工具类很可能是对上述功能的封装,提供了一些简单易用的方法,例如 `sendEmail()`, `getMessages()`, `searchEmails()` 等,使得开发者无需深入了解 JavaMail 的底层细节就能进行邮件操作。...
8. **邮件过滤和搜索**:除了基本的邮件发送和接收,JavaMail还提供了邮件过滤和搜索功能。开发者可以通过`Folder`对象的`getMessages()`方法获取所有邮件,然后使用`Message`的属性进行筛选和查找。 9. **事件监听...
为了克服这一限制,可以采用JavaMail库直接将邮件发送至指定邮箱,而无需依赖用户的邮件客户端。 #### JavaMail简介 JavaMail是一个强大的Java库,它提供了用于发送和接收电子邮件的标准接口。JavaMail构建在...
最后,通过 `Transport.send(Message)` 方法将邮件发送出去。 JavaMail 不仅支持简单的文本邮件,还支持 MIME 多部分消息,这意味着可以发送包含附件、HTML 内容或者嵌入图片的复杂邮件。`Multipart` 类可用于创建...
### Spring 3.x企业应用开发实战之JavaMail发送邮件知识点详解 #### 一、JavaMail基础知识的...Spring通过对JavaMail的支持,不仅简化了邮件发送的流程,还提高了开发效率,使得开发者能够更加专注于业务逻辑的实现。
初学javamail的时候,弄了好久都没成功的例子,现在成功了和大家分享下,希望对刚入门的...本例是用qq邮箱运行的,所以发送端的邮箱smtp服务必须开启,接受端无需任何设置!导入成功后,直接运行SendAccountFileTask类
5. **Address**:JavaMail中的Address类表示邮件地址,包括InternetAddress(用于电子邮件地址)和MailboxAddress(用于邮件箱地址)。创建Address对象并设置到Message中,可以指定邮件的发送者和接收者。 6. **...
在这种情况下,邮件发送可能是通过 HTTP 请求触发的,比如用户点击“发送”按钮后,服务器端的控制器接收请求并调用 JavaMail 相关的逻辑。 5. **异常处理**:邮件发送过程中可能会遇到网络问题、认证失败等问题,...
`Message` 对象代表一封邮件,`Transport` 负责将邮件发送到服务器,`Store` 用于连接邮件服务器并处理邮件的接收。 4. **身份验证与安全**:在实际应用中,邮件发送可能需要身份验证,如用户名和密码。JavaMail ...
通过这个例子,开发者可以快速地在自己的项目中集成邮件发送功能,无需深入了解JavaMail API的复杂细节。 总之,`XMail` 是一个方便的邮件发送工具,它降低了JavaMail API的使用门槛,使开发者能够快速实现邮件发送...
5. **发送邮件**:最后,使用`Transport`类的`send()`方法将邮件发送出去。 ```java Transport.send(message); ``` 描述中的“有源码,解压即用”表明这个压缩包可能包含了一个简单的JavaMail示例项目,可以直接...