package test.javamail;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
// 利用java.mail的邮件发送程序** /
public class SendMailTest {
public static void main(String[] args) {
String title = "SendMailTest_title";
// 所发送邮件的标题
String from = "*****@163.com";
// 从那里发送
String sendTo[] = { "***@163.com", "***@163.com" };
// 发送到那里 // 邮件的文本内容,可以包含html标记则显示为html页面
String content = "mail test!!!!!!<br><a href=#>aaa</a>";
// 所包含的附件,及附件的重新命名
String fileNames[] = { "d:\\text1.txt,text1.txt",
"d:\\text2.txt,text2.txt" };
try {
sendmail(title, from, sendTo, content, fileNames,
"text/html;charset=gb2312");
} catch (Exception ex) {
ex.printStackTrace();
}
}
@SuppressWarnings("static-access")
public static void sendmail(String subject, String from, String[] to,
String text, String[] filenames, String mimeType) throws Exception {
// 可以从配置文件读取相应的参数
Properties props = new Properties();
String smtp = "smtp.cnlaunch.com";
// 设置发送邮件所用到的用户名和密码
String servername = "***";
String serverpaswd = "***";
javax.mail.Session mailSession;
// 邮件会话对象
javax.mail.internet.MimeMessage mimeMsg;
// MIME邮件对象
props = java.lang.System.getProperties();
// 获得系统属性对象
props.put("mail.smtp.host", smtp);
// 设置SMTP主机
props.put("mail.smtp.auth", "true");
// 是否到服务器用户名和密码验证
// 到服务器验证发送的用户名和密码是否正确
Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd);
// 设置邮件会话
mailSession = javax.mail.Session.getInstance(props,
(Authenticator) myEmailAuther);
// 设置传输协议
javax.mail.Transport transport = mailSession.getTransport("smtp");
// 设置from、to等信息
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
if (from != null && !from.equals("")) {
InternetAddress sentFrom = new InternetAddress(from);
mimeMsg.setFrom(sentFrom);
// 设置发送人地址 } // 收件人
InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
System.out.println("发送到:" + to[i]);
sendTo[i] = new InternetAddress(to[i]);
}
// 抄送
InternetAddress[] sendToCC = new InternetAddress[2];
sendToCC[0] = new InternetAddress("***@163.com");
sendToCC[1] = new InternetAddress("***@163.com");
// 密送
InternetAddress[] sendToBCC = new InternetAddress[2];
sendToBCC[0] = new InternetAddress("***@163.com");
sendToBCC[1] = new InternetAddress("***@163.com");
mimeMsg.setRecipients(
javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
mimeMsg.setRecipients(
javax.mail.internet.MimeMessage.RecipientType.CC, sendToCC);
mimeMsg.setRecipients(
javax.mail.internet.MimeMessage.RecipientType.BCC,
sendToBCC);
mimeMsg.setSubject(subject, "gb2312");
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setContent(text, mimeType);
Multipart multipart = new MimeMultipart();
// 附件传输格式
multipart.addBodyPart(messageBodyPart1);
for (int i = 0; i < filenames.length; i++) {
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
// 选择出每一个附件名
String filename = filenames[i].split(",")[0];
System.out.println("附件名:" + filename);
String displayname = filenames[i].split(",")[1];
// 得到数据源
FileDataSource fds = new FileDataSource(filename);
// 得到附件本身并设置到
messageBodyPart2.setDataHandler(new DataHandler(fds));
// 得到文件名同样设置到
messageBodyPart2.setFileName(MimeUtility
.encodeText(displayname));
multipart.addBodyPart(messageBodyPart2);
}
mimeMsg.setContent(multipart);
// 设置信件头的发送日期
mimeMsg.setSentDate(new Date());
mimeMsg.saveChanges();
// 发送邮件
transport.send(mimeMsg);
transport.close();
}
}
}
/**
* * 验证类(内部类)**
*
* @author Administrator*
*/
class Email_Autherticatorbean extends Authenticator {
private String m_username = null;
private String m_userpass = null;
public void setUsername(String username) {
m_username = username;
}
public void setUserpass(String userpass) {
m_userpass = userpass;
}
public Email_Autherticatorbean(String username, String userpass) {
super();
setUsername(username);
setUserpass(userpass);
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(m_username, m_userpass);
}
}
分享到:
相关推荐
2. **创建邮件消息(Message)**:使用`MimeMessage`类创建邮件实例。我们可以设置邮件的发件人、收件人、抄送人、密送人、主题和正文。如果是HTML格式的邮件,可以使用`MimeBodyPart`和`Multipart`类来构造复杂的...
本篇将深入探讨 JavaMail 的邮件实例,以及如何利用它来创建、发送和接收邮件。 在 JavaMail 中,主要涉及的核心接口和类包括 `Session`、`Message`、`MimeMessage`、`Transport` 和 `Store`。`Session` 是整个邮件...
在IT行业中,发送电子邮件是一项常见的任务,特别是...通过以上步骤,你可以构建一个完整的邮件发送实例,实现从你的应用程序中发送邮件的功能。在实际开发中,可以根据具体需求进行调整和优化,以满足不同场景的需求。
在本文中,我们将深入探讨如何使用Delphi编程语言发送电子邮件,特别关注"Delphi发邮件实例源码.rar"这个压缩包中的示例。这个实例基于SendDLL.dll控件,它是一个方便的第三方组件,用于在Delphi应用程序中实现邮件...
在Java编程中,发送电子邮件是一项常见的任务,尤其在自动化通知、报表发送或用户验证等场景中。本篇文章将深入探讨如何使用Java实现邮件发送功能,主要基于`javax.mail`库,这是一个标准的Java邮件API。 首先,...
本文将详细介绍如何使用Java实现发送邮件的实例,并提供所需的库和步骤。 首先,JavaMail API是Java中用于处理邮件的核心库。在描述中提到的"jar包"很可能是JavaMail相关的依赖,例如`javax.mail`和`javax.mail-api...
以上就是“读取邮件实例源码”所涵盖的技术点。通过分析并理解这个源码,开发者可以学习如何构建自己的邮件管理工具,从而提高工作效率或开发更复杂的邮件应用。在实际开发过程中,还应考虑性能优化、用户体验以及与...
### Ruby收取邮件实例详解 在IT领域,使用编程语言处理电子邮件是常见的需求之一,而Ruby作为一门优雅且功能丰富的脚本语言,在这方面提供了强大的支持。本文将深入解析一个Ruby脚本,该脚本用于通过POP3协议收取...
### Spring Mail 发送邮件实例详解 #### 一、Spring Mail 概述 Spring Mail 是 Spring 框架中用于处理电子邮件发送的一个模块。它提供了一种简单的方式来进行邮件的发送,支持多种邮件发送协议,例如 SMTP 等,...
3. **C# 发送邮件实例** 在实际项目中,可能还需要考虑其他因素,如添加附件、设置抄送和密送、HTML格式的邮件正文等。`MailMessage`类提供了这些功能: - 添加附件:`message.Attachments.Add(new Attachment(...
在"使用Log4net发送日志邮件实例"中,我们将探讨如何利用Log4net的功能,将日志信息通过电子邮件发送,以便于实时监控和快速响应潜在的问题。 首先,你需要在项目中引用Log4net库。这可以通过NuGet包管理器完成,...
这个"pop3收邮件实例winform源码"提供了一个实际的例子,展示如何在C#或.NET Framework中实现这样的功能。 首先,我们要了解POP3的基本工作流程。当用户想要获取邮件时,客户端应用会连接到POP3服务器,通过身份...
### C#发送电子邮件实例解析 在本篇文章中,我们将详细探讨如何使用C#语言来实现电子邮件的发送功能。本文将基于提供的代码示例进行深入分析,帮助读者理解每个部分的作用及其背后的逻辑。 #### 一、引入命名空间 ...
一个独立的java 接收邮件实例,平时java发邮件这块应该说是资源都比较丰富了。但收这块比较少,所以就整合了一下相关资源。
4. **构建邮件**:使用`Commons-Mail`的`Email`类创建邮件实例,设置收件人、发件人、主题和正文: ```java Email email = new SimpleEmail(); email.setFrom("your-email@example.com"); email.setSubject(...
Labview自动发送邮件实例,内涵完整账号密码 1-可执行版 2-可发送附件版 3-邮件发送
在提供的"Example7-接收邮件实例"压缩包中,应该包含了实现以上步骤的源代码示例,你可以参考这个实例来进一步学习和理解如何在C#中接收邮件。通过深入研究和实践,你可以熟练地运用这些技术,构建出高效稳定的邮件...
本实例是基于 ASP.NET 的 WebForm 平台实现的邮件发送功能。 首先,我们要了解 ASP.NET 中发送邮件的基本步骤。这通常涉及到使用 `System.Net.Mail` 命名空间中的 `SmtpClient` 和 `MailMessage` 类。`SmtpClient` ...