`
isiqi
  • 浏览: 16338344 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

发送邮件的例子

阅读更多

发送邮件的例子

package cc.yiyao.common;
import java.security.Security;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendGmail {

private MimeMessage mimeMsg;

private Session session;

private Properties props;

private String username = "";// 用户名?

private String password = "";// 密码

private Multipart mp;

final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

public SendGmail(String smtp) {
setSmtpHost(smtp);
createMimeMessage();
}

/**
* @param hostName
* String
*/
public void setSmtpHost(String hostName) {
if (props == null)
props = System.getProperties(); //获取系统properties

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

props.setProperty("mail.smtp.host", hostName);
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.auth", "true");
// props.setProperty("mail.smtp.starttls.enable", "false");
}

/**
* @return boolean
*/
public boolean createMimeMessage() {
try {
session = Session.getDefaultInstance(props, null);
} catch (Exception e) {
return false;
}

try {
mimeMsg = new MimeMessage(session);
mp = new MimeMultipart();

return true;
} catch (Exception e) {
return false;
}
}

/**
* @param need
* boolean
*/
public void setNeedAuth(boolean need) {
if (props == null)
props = System.getProperties();
if (need) {
props.put("mail.smtps.auth", "true");
} else {
props.put("mail.smtps.auth", "false");
}
}

/**
* @param name
* String
* @param pass
* String
*/
public void setNamePass(String name, String pass) {
username = name;
password = pass;
}

/**
* @param mailSubject
* String
* @return boolean
*/
public boolean setSubject(String mailSubject) {
try {
mimeMsg.setSubject(mailSubject);
return true;
} catch (Exception e) {
return false;
}
}

/**
* @param mailBody
* String
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
+ mailBody, "text/html;charset=gb2312");
mp.addBodyPart(bp);

return true;
} catch (Exception e) {
return false;
}
}

/**
* @param name
* String
* @param pass
* String
*/
public boolean addFileAffix(String filename) {
try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(MimeUtility.encodeWord(fileds.getName(), "gb2312",
null));
String contentType = bp.getContentType();
bp.setHeader("Content-Type", contentType + ";charset=gb2312");
mp.addBodyPart(bp);

return true;
} catch (Exception e) {
return false;
}
}

/**
* @param name
* String
* @param pass
* String
*/
public boolean setFrom(String from) {

try {
mimeMsg.setFrom(new InternetAddress(from)); // 发件人地址?
return true;
} catch (Exception e) {
return false;
}
}

/**
* @param name
* String
* @param pass
* String
*/
public boolean setTo(String to) {
if (to == null)
return false;

try {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
.parse(to));
return true;
} catch (Exception e) {
return false;
}
}

/**
* @param name
* String
* @param pass
* String
*/
public boolean setCopyTo(String copyto) {
if (copyto == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copyto));
return true;
} catch (Exception e) {
return false;
}
}

/**
* @param name
* String
* @param pass
* String
*/
public boolean sendout() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在发送邮件....");

Session mailSession = Session.getInstance(props, null);

mailSession.setDebug(true);

Transport transport = mailSession.getTransport("smtp");
transport.connect((String) props.get("mail.smtp.host"), username,
password);
transport.sendMessage(mimeMsg, mimeMsg
.getRecipients(Message.RecipientType.TO));

System.out.println("发送邮件成功");
transport.close();

return true;
} catch (Exception e) {
System.err.println("发送邮件失败?" + e);
return false;
}
}


//发磅邮件(自己写的文件(OK) )

/**调用方法(jsp页面中要引入activation.jar和mail.jar包):
* SendGmail themail = new SendGmail("smtp.gmail.com");
* themail.sendEmail("标题","内容","要发送的邮箱","从哪里发送的邮箱")就行了。
* (当然,main的方法也可以直接运行,不用引入activation.jar和mail.jar包)也能实现发送邮件的功能!作测试用的)
* */
public boolean sendEmail(String subjectStr,String mailbody,String toEmail,String fromEmail){
SendGmail themail = new SendGmail("smtp.gmail.com");
themail.setNeedAuth(true);

if (themail.setSubject(subjectStr) == false) //
return false;
if (themail.setBody(mailbody) == false)
return false;
if (themail.setTo(toEmail) == false) //要发送的邮箱
return false;
if (themail.setFrom(fromEmail) == false) //从哪里发送的邮箱
return false;
themail.setNamePass("straight.pn@gmail.com", "123456@");

if (themail.sendout() == false)
return false;
return true;
}

/**
* Just do it as this
*/

/* main的方法也可以直接运行,也能实现发送邮件的功能!
public static void main(String[] args) {

String mailbody = "<div align=center><a href='http://www.yiyao.cc'>minsheng</a></div>"; //内容

SendGmail themail = new SendGmail("smtp.gmail.com");
themail.sendEmail("Test标题",mailbody,"laiahu@126.com","laiahu2005@yahoo.com.cn");
System.out.println(themail.sendEmail("Test标题",mailbody,"laiahu@126.com","laiahu2005@yahoo.com.cn"));
themail.setNeedAuth(true);

if (themail.setSubject("Test标题") == false) //标题
return;
if (themail.setBody(mailbody) == false)
return;
if (themail.setTo("laiahu@126.com") == false) //要发送的邮箱
return;
if (themail.setFrom("laiahu2005@yahoo.com.cn") == false) //从哪里发送的邮箱
return;
//if (themail.addFileAffix(SendMail.class.getResource("").getPath()
//+ "Blue hills.jpg") == false)
//return;
themail.setNamePass("straight.pn@gmail.com", "123456@");

if (themail.sendout() == false)
return;
}*/
}

分享到:
评论

相关推荐

    java 发邮件例子

    以下是一个基于`commons-email-1.1`库的Java发邮件实例: 首先,确保你的项目已经正确地引入了`commons-email`库。这通常通过Maven或Gradle的依赖管理来完成。如果你使用的是Maven,可以在`pom.xml`文件中添加以下...

    bcb 发邮件 例子

    【标题】"bcb 发邮件 例子"是一个关于使用Borland C++ Builder(简称bcb)编程环境发送电子邮件的示例项目。这个项目旨在帮助开发者了解如何在Borland C++ Builder中集成邮件发送功能。 【描述】"发邮件的小例子,...

    C#发送邮件例子

    首先,我们来看`C#发送邮件例子`这个标题所涵盖的内容。这通常指的是一个使用C#语言编写的程序,其目标是向用户展示如何通过代码实现电子邮件的发送。这个例子会演示如何连接到SMTP(Simple Mail Transfer Protocol...

    C#发送邮件例子 By Andrew

    Andrew提供的这个例子将向我们展示如何利用C#的SMTP(Simple Mail Transfer Protocol)服务来实现邮件的发送。以下是一些关于C#发送邮件的关键知识点: 1. **System.Net.Mail命名空间**:C#中发送邮件主要依赖于`...

    java发送邮件例子及jar包

    这个“java发送邮件例子及jar包”很可能是包含了一个示例程序和必要的JavaMail API库。在这个压缩包中,"email"可能指的是一个包含Java源代码的文件或者一个类,用于演示如何使用JavaMail API发送邮件。 JavaMail ...

    ASP.net 发邮件例子

    在这个"ASP.NET 发邮件例子"中,我们将探讨如何使用ASP.NET的核心组件发送电子邮件。电子邮件在现代Web应用中是一个常见且重要的功能,例如用户注册确认、密码重置、通知服务等。 发送电子邮件在ASP.NET中主要依赖...

    基于Maven的javax.mail发送邮件例子程序

    基于Maven的javax.mail发送邮件例子程序 pom.xml添加依赖jar: &lt;groupId&gt;javax.mail &lt;artifactId&gt;mail ${javamail.version} &lt;/dependency&gt; &lt;javamail.version&gt;1.4.1 /* 功能:加入了参考文章中没有...

    javaee 发送邮件例子

    这是最基础的邮件发送方式,主要用于发送纯文本邮件。以下是一个简单的示例: ```java import javax.mail.*; import javax.mail.internet.*; public class SimpleEmailSender { public static void main...

    spring整合freemarker发送邮件例子

    以上就是"spring整合freemarker发送邮件例子"的核心内容。通过这种方式,我们可以创建包含复杂格式、内嵌图片和附件的邮件,同时确保内容正确编码,避免乱码问题。这在企业级应用中非常有用,如发送通知、报表或客户...

    JMail Visual Studio 2008 Ajax无刷新发送邮件例子

    JMail Visual Studio 2008 Ajax无刷新发送邮件例子 注意:你必须正确填写发件人的用户名及密码 建议使用QQ邮箱做为发件人,设置步骤:登陆QQ邮箱。点击左上角设置(邮箱首页右边那个)点击帐户选项卡,最下面开启...

    .net发送邮件例子

    SMTP是互联网上标准的邮件传输协议,用于从发件人邮箱服务器发送邮件到收件人邮箱服务器。 要使用`SmtpClient`,你需要设置SMTP服务器的地址和端口,通常可以在你的邮件服务提供商的文档中找到这些信息。例如,如果...

    VC++通过QQ邮箱发送邮件例子

    4. 构建SMTP请求,包括发件人、收件人、抄送人、密送人以及邮件内容。 5. 使用网络库发送SMTP请求,等待服务器响应。 6. 检查响应状态,确保邮件成功发送,处理可能出现的错误。 在实际编程中,还要注意错误处理和...

    java发邮件例子代码

    这个例子代码将演示如何在Java环境中利用`commons-email-1.0.jar`库来发送带有附件的邮件。Apache Commons Email库提供了丰富的功能,简化了邮件发送过程。 首先,你需要在项目中引入`commons-email-1.0.jar`库。这...

    C++Builder2010发邮件例子

    这个例子应该包含了创建邮件对象、配置SMTP组件、发送邮件等步骤的详细实现,是学习C++Builder邮件发送功能的好材料。通过阅读和理解这个示例,你可以掌握使用C++Builder和Indy库进行邮件通信的基本技巧。

    Loadrunner模拟smtp发送邮件例子

    ### Loadrunner模拟SMTP发送邮件知识点解析 #### 一、Loadrunner简介及应用场景 Loadrunner是一款由Micro Focus公司推出的性能测试工具,主要用于评估软件系统在压力条件下的行为表现。通过模拟成千上万个用户同时...

    javamail发送邮件例子

    JavaMail 是一个开源库,它提供了在 Java 应用程序中发送和接收电子邮件的功能。它扩展了 Java EE 的 javax.mail 包,提供了更强大的邮件处理能力。在标题和描述中提到的,我们将讨论如何使用 JavaMail 实现发送邮件...

    C# 发送邮件例子-一看就会

    本文将详细解析一个C#发送邮件的例子,帮助读者快速掌握这一技能。 ### C#发送邮件的基础知识点 #### 1. **使用命名空间** 在C#中发送邮件首先需要引用`System.Net.Mail`命名空间,这个命名空间包含了所有与电子...

Global site tag (gtag.js) - Google Analytics