package com.cellcom;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.sun.mail.smtp.SMTPAddressFailedException;
import com.sun.mail.smtp.SMTPAddressSucceededException;
import com.sun.mail.smtp.SMTPSendFailedException;
import com.sun.mail.smtp.SMTPTransport;
public class smtpsend {
public static void main(String[] argv) {
String from = "name@example.com", url = null;
String mailhost = "smtp.example.com";
String mailer = "smtpsend";
String protocol = null, host = "smtp.example.com", user = "name", password = "psd";
String record = null; // name of folder in which to record mail
boolean debug = false;
boolean verbose = false;
boolean auth = true;
String prot = "smtp";
try {
Properties props = System.getProperties();
if (mailhost != null)
props.put("mail." + prot + ".host", mailhost);
if (auth)
props.put("mail." + prot + ".auth", "true");
Session session = Session.getInstance(props, null);
if (debug)
session.setDebug(true);
Message msg = new MimeMessage(session);
if (from != null)
msg.setFrom(new InternetAddress(from));
else
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("name@example.com", false));
msg.setSubject("dd");
MimeMultipart multipart = new MimeMultipart("related");
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>Hello</H1><img src=\"cid:image\">ddddddd";
String htmlText1 = "<H1>Hello</H1><img src=\"cid:image1\">ddddddd";
messageBodyPart.setContent(htmlText + htmlText1, "text/html");
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource
("E:\\aa\\bb\\icons\\incomingLinksNavigatorGroup.gif");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<image>");
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
fds = new FileDataSource
("E:\\aa\\bb\\icons\\incomingLinksNavigatorGroup.gif");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<image1>");
// add it
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
SMTPTransport t =
(SMTPTransport)session.getTransport(prot);
try {
if (auth)
t.connect(mailhost, user, password);
else
t.connect();
t.sendMessage(msg, msg.getAllRecipients());
} finally {
if (verbose)
System.out.println("Response: " +
t.getLastServerResponse());
t.close();
}
System.out.println("\nMail was sent successfully.");
if (record != null) {
// Get a Store object
Store store = null;
if (url != null) {
URLName urln = new URLName(url);
store = session.getStore(urln);
store.connect();
} else {
if (protocol != null)
store = session.getStore(protocol);
else
store = session.getStore();
// Connect
if (host != null || user != null || password != null)
store.connect(host, user, password);
else
store.connect();
}
Folder folder = store.getFolder(record);
if (folder == null) {
System.err.println("Can't get record folder.");
System.exit(1);
}
if (!folder.exists())
folder.create(Folder.HOLDS_MESSAGES);
Message[] msgs = new Message[1];
msgs[0] = msg;
folder.appendMessages(msgs);
System.out.println("Mail was recorded successfully.");
}
} catch (Exception e) {
if (e instanceof SendFailedException) {
MessagingException sfe = (MessagingException)e;
if (sfe instanceof SMTPSendFailedException) {
SMTPSendFailedException ssfe =
(SMTPSendFailedException)sfe;
System.out.println("SMTP SEND FAILED:");
if (verbose)
System.out.println(ssfe.toString());
System.out.println(" Command: " + ssfe.getCommand());
System.out.println(" RetCode: " + ssfe.getReturnCode());
System.out.println(" Response: " + ssfe.getMessage());
} else {
if (verbose)
System.out.println("Send failed: " + sfe.toString());
}
Exception ne;
while ((ne = sfe.getNextException()) != null &&
ne instanceof MessagingException) {
sfe = (MessagingException)ne;
if (sfe instanceof SMTPAddressFailedException) {
SMTPAddressFailedException ssfe =
(SMTPAddressFailedException)sfe;
System.out.println("ADDRESS FAILED:");
if (verbose)
System.out.println(ssfe.toString());
System.out.println(" Address: " + ssfe.getAddress());
System.out.println(" Command: " + ssfe.getCommand());
System.out.println(" RetCode: " + ssfe.getReturnCode());
System.out.println(" Response: " + ssfe.getMessage());
} else if (sfe instanceof SMTPAddressSucceededException) {
System.out.println("ADDRESS SUCCEEDED:");
SMTPAddressSucceededException ssfe =
(SMTPAddressSucceededException)sfe;
if (verbose)
System.out.println(ssfe.toString());
System.out.println(" Address: " + ssfe.getAddress());
System.out.println(" Command: " + ssfe.getCommand());
System.out.println(" RetCode: " + ssfe.getReturnCode());
System.out.println(" Response: " + ssfe.getMessage());
}
}
} else {
System.out.println("Got Exception: " + e);
if (verbose)
e.printStackTrace();
}
}
}
public static String collect(BufferedReader in) throws IOException {
String line;
StringBuffer sb = new StringBuffer();
while ((line = in.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
return sb.toString();
}
}
分享到:
相关推荐
在Java编程语言中,发送电子邮件是一项常见的任务,尤其在自动化通知、系统消息传递或用户注册验证等场景下。本教程将详细介绍如何使用`commons-email-1.1`库结合Java来实现邮件发送功能。 `commons-email`是Apache...
【标题】"bcb 发邮件 例子"是一个关于使用Borland C++ Builder(简称bcb)编程环境发送电子邮件的示例项目。这个项目旨在帮助开发者了解如何在Borland C++ Builder中集成邮件发送功能。 【描述】"发邮件的小例子,...
在VC++环境中,通过QQ邮箱发送邮件涉及到的主要知识点包括SMTP(Simple Mail Transfer Protocol)协议、MIME(Multipurpose Internet Mail Extensions)编码以及QQ邮箱的SMTP服务器设置。下面将详细讲解这些概念及其...
以下将详细讲解如何使用Python实现发送普通邮件、带附件以及带图片邮件。 ### 1. 发送普通TXT邮件 发送普通TXT邮件的核心在于使用`email.mime.text.MIMEText`类来创建邮件内容。首先,导入必要的模块,然后定义...
java邮件发送Demo(完整例子):下面是我的测试方法: public static void demo(){ Mail mail=new Mail(); mail.setSmtpHost("smtp.163.com");/** 设置SMTP **/ String mailFrom="wangxin_admin@163.com"; ...
这个服务能够发送HTML格式的邮件,其中包含内嵌的图片,并且能够处理附件,同时解决字符编码可能导致的乱码问题。以下是详细的知识点讲解: 1. **Spring Framework**:Spring 是一个广泛使用的 Java 应用开发框架,...
这个例子应该包含了创建邮件对象、配置SMTP组件、发送邮件等步骤的详细实现,是学习C++Builder邮件发送功能的好材料。通过阅读和理解这个示例,你可以掌握使用C++Builder和Indy库进行邮件通信的基本技巧。
`HtmlEmail`是一个专门用于创建和发送带有HTML内容的邮件的工具,它简化了邮件编程的复杂性,让我们能够更加便捷地发送具有丰富格式的邮件。 首先,我们需要了解`HtmlEmail`类的来源。在Java开发中,`HtmlEmail`...
在VC的例子中,你可以找到关于建立SMTP连接、设置发件人和收件人信息、添加邮件主题和正文、以及发送邮件的实现细节。这对于构建一个能发送邮件的应用来说是必不可少的。 在压缩包中的“收发送电子邮件.POP3,SMTP”...
Java/javamail发送邮件是Java开发中常见的任务之一,它涉及到网络通信和电子邮件协议的知识。在Java中,JavaMail API提供了发送和接收电子邮件的功能。这个API遵循了JavaBeans Activation Framework (JAF) 和 ...
JAF提供了一种标准的方式来识别和操作Java对象,这对于处理MIME(多用途互联网邮件扩展)类型的邮件非常重要,因为邮件可能包含各种不同类型的数据,如文本、图片、音频或视频。 在提供的`MailExample.java`示例中...
本文将详细讲解如何使用C#(CS版)和Web版代码实现带附件的邮件发送功能,这对于开发者来说是必备技能之一。 首先,我们来看C#版本的邮件发送实例。C#提供了System.Net.Mail命名空间,其中的SmtpClient和...
- **邮件过滤与管理**:QQ邮箱提供了邮件过滤规则,用户可以根据发件人、主题等条件自动分类邮件。还有垃圾邮件过滤功能,帮助用户筛选出非重要邮件。 通过以上讲解,你应该对使用QQ邮箱发送邮件有了全面的理解。...
JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,包括发送、接收邮件以及处理复杂的邮件格式,如文本、图片和附件。在这个小例子中,我们将深入探讨如何利用JavaMail API来实现这些功能。 ...
4. **发送邮件**:调用`smtp.sendmail()`方法发送邮件,传递发件人、收件人列表以及邮件对象的字符串表示。 5. **关闭连接**:发送完毕后,使用`smtp.quit()`关闭连接。 以Python为例,一个简单的发送邮件源码可能...