`
knight_black_bob
  • 浏览: 853079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jmail 发送 邮件 进行 密码找回

阅读更多

jmail 发送 邮件 进行 密码找回

---------------------------------------------------------------------------------------------------------------------------

 

 

 

 

package com.user.service.impl;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.apache.log4j.Logger;

import com.fusionability.user.service.EmailService;
import com.fusionability.web.bean.User;

public class EmailServiceImpl implements EmailService,InitializingBean{

	private static Logger logger = Logger.getLogger(EmailServiceImpl.class); 
	private EmailInfo emailInfo ;
	
	public class EmailInfo
	{
		public String smtpServer = "smtp.sina.com";
		public boolean smtpAuth = true;
		public String email = "knight_black_bob@sina.com";
		public String loginName = "knight_black_bob";
		public String passwd = "";
	}
	
	private MimeMessage message;
	private Session s;
	public static String KEY_SMTP = "mail.smtp.host";
	public static String KEY_PROPS = "mail.smtp.auth";
	
	
	
	private EmailService emailService;
	
	
	public void retrievePasswordEmail(User user) throws Exception{
		sendEmail(user.getUsername(), "找回密码", getRetrievePasswordEmail(user));
	}

	public void sendEmail(String mailbox, String title, String message) throws Exception
	{
		sendEmail(new String[] { mailbox }, title, message);
	}
	
	public void sendEmail(String[] mailbox, String title, String message) throws Exception
	{
		try
		{
			InternetAddress from = new InternetAddress(this.emailInfo.email);
			this.message.setFrom(from);
			// 收件人
			InternetAddress[] tos = new InternetAddress[mailbox.length];
			for (int i = 0; i < mailbox.length; i++)
				tos[i] = new InternetAddress(mailbox[i]);
			this.message.setRecipients(Message.RecipientType.TO, tos);
			// 邮件标题
			this.message.setSubject(title);
			// 邮件内容,也可以使纯文本"text/plain"
			this.message.setContent(message, "text/html;charset=GBK");
			this.message.saveChanges();
			Transport transport = s.getTransport("smtp");
			// smtp验证,就是你用来发邮件的邮箱用户名密码
			transport.connect(this.emailInfo.smtpServer, this.emailInfo.loginName, this.emailInfo.passwd);
			// 发送
			transport.sendMessage(this.message, this.message.getAllRecipients());
			transport.close();
		}
		catch (AddressException e)
		{
			logger.warn("", e);
		}
		catch (MessagingException e)
		{
			logger.warn("", e);
		}
	}
	
	private String getRetrievePasswordEmail(User user){
		StringBuffer email = new StringBuffer();
		email.append(" -.- ");
		return email.toString();
	}
	
	
//get set 
	public EmailService getEmailService() {
		emailInfo = new EmailInfo();
		return emailService;
	}
	public void setEmailService(EmailService emailService) {
		this.emailService = emailService;
	}
}

 

 

public void afterPropertiesSet() throws Exception {
		//String ec = sysConfigService.getEmailConfig();
		if (true)
		{
			//smtp.sina.com,knihgt_black_bob@sina.com,knihgt_black_bob,aaaa		
                  	//String[] ss = ec.split(",");
			this.emailInfo.smtpServer = "smtp.sina.com";
			this.emailInfo.email = "knihgt_black_bob@sina.com";
			this.emailInfo.loginName = "knihgt_black_bob";
			this.emailInfo.passwd = "aaaa";
		}
		Properties props = System.getProperties();
		props.setProperty(KEY_SMTP, this.emailInfo.smtpServer);
		props.put(KEY_PROPS, this.emailInfo.smtpAuth);
		s = Session.getInstance(props);
		message = new MimeMessage(s);
		
	}

 

 

 

 

html  邮件 格式 注意事项:

1、全局规则之一,不要写<style>标签、不要写class,所有CSS都用style属性,什么元素需要什么样式就用style写内联的CSS。

2、全局规则之二,少用图片,邮箱不会过滤你的img标签,但是系统往往会默认不载入陌生来信的图片,如果用了很多图片的邮件,在片没有载入的情况下,丑陋无比甚至看不清内容,没耐心的用户直接就删除了。图片上务必加上alt。

3、不要在style里面写float、position这些style,因为会被过滤。那么如何实现左右布局或者更复杂的布局呢?用table。

4、style内容里面background可以设置color,但是img会被过滤,就是说不能通过CSS来设置背景图片了。但是有一个很有意思的元素 属性,也叫background,里面可以定义一个图片路径,这是个不错的替代方案,虽然这样功能有限,比如无法定位背景图片了,有总比没有好。例如要给 一个单元格加一个背景,必须这样写:
<td background=”http://image1.koubei.com/images/common/logo_koubei.gif”></td>

5、div模式的邮箱不支持flash,iframe模式的有待验证。

最后提一句,sohu的邮箱很怪异,会在每个文本段后面加一个空格,导致原本正常的排版一行放不下而换行,从而使某些布局错乱。所以,如果你要兼容sohu邮箱的话,遇到一些紧凑的布局就要格外小心了,尽量减少文本段的数量,留足宽度。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

2
2
分享到:
评论

相关推荐

    利用Jmail发送邮件:

    ### 使用Jmail发送与接收邮件的关键技术点 #### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细...

    jmail发送邮件

    确保邮件能够成功地通过服务器进行发送。 #### 设置邮件主题与内容 ```vb jmail.Subject = "测试邮件" jmail.Body = "这是测试邮件的内容," & mailtest ``` `Subject`属性用于设置邮件的主题,`Body`属性则定义...

    Jmail实现邮件的发送

    JMail是一款用于在Java环境中发送电子邮件的开源库,它提供了简单易用的API,使得开发者无需注册即可直接发送邮件。这个工具特别适用于那些需要在应用程序中集成邮件功能的项目,如用户通知、批量邮件发送等场景。...

    vb jmail 发送邮件

    对于使用Visual Basic(VB)进行编程的开发者来说,利用第三方组件如jmail来发送邮件是一种高效且简便的方法。本文将深入解析如何使用jmail在VB环境中发送邮件,包括必要的环境配置、代码示例及其详细解释。 ### ...

    asp.net中使用Jmail发送邮件

    接下来,要在ASP.NET中使用Jmail发送邮件,首先要在你的Web.config文件中配置Jmail的相关设置。这通常包括SMTP服务器地址、端口、用户名、密码等信息。例如: ```xml &lt;add key="JMail.SMTPServer" value=...

    java jmail 发送邮件

    本教程将深入讲解如何使用Java JMail发送邮件,以及涉及的相关知识点。 1. **Java JMail基本概念** - **JavaMail API**: JavaMail API是Java平台上的一个标准API,用于处理电子邮件。它提供了与邮件服务器交互的...

    JMAIL邮件发送示例代码C++

    本文将详细讲解如何使用C++语言结合JMAIL库实现邮件发送功能,以及通过126邮箱进行测试的过程。 首先,我们需要了解JMAIL库。JMAIL是一个用于SMTP(简单邮件传输协议)的C++库,它提供了方便的API接口,使得开发者...

    jmail表单发送邮件

    - `save.asp`: 这个文件可能包含了接收表单数据并使用JMail发送邮件的逻辑。 - `default.asp`: 可能是用户填写邮件信息的表单页面。 - `checkcode.asp`: 可能用于验证码验证,防止垃圾邮件。 - `validatebody....

    php用jmail发邮件源代码

    要使用JMail发送邮件,首先需要确保你的服务器支持SMTP服务,因为大多数邮件发送都是通过SMTP协议进行的。SMTP服务器配置包括主机名(如smtp.example.com)和端口号(通常为25,SSL/TLS加密时可能是465或587)。 接...

    使用Jmail组件发送和接收邮件(含附件)

    使用JMail发送邮件主要包括以下几个步骤: 1. **配置SMTP服务器**:JMail需要知道SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。这些信息可以在程序中以Properties对象的形式设置。 2. **创建Session...

    vb jmail发送邮件

    此外,为了保证邮件发送的成功率,确保你的SMTP服务器支持外发邮件,并且正确配置了认证信息。 通过以上步骤,你就可以在VB程序中利用JMail组件实现邮件发送的功能,这对于自动化任务、通知系统或者用户交互都是...

    VC 利用Jmail收发邮件

    在【标题】和【描述】中提到的"利用Jmail发送邮件",是通过创建`jmail.MessageClass`对象来实现的。以下是一些关键步骤: 1. **初始化邮件对象**:`jmail.MessageClass oJmailMessage = new jmail.MessageClass();`...

    用ASP的发送邮件 jmail邮件发送.docx

    以下是使用JMail发送邮件的关键步骤: 1. **配置邮件服务器信息**: - `E_Server`:设置SMTP(Simple Mail Transfer Protocol)服务器的地址,例如"192.168.0.235",这是发送邮件的服务器。 - `E_ServerUser`:...

    Jmail发送邮件系统源码_jmailsend.zip

    《Jmail发送邮件系统源码解析与应用》 在信息技术高速发展的今天,电子邮件已经成为企业和个人进行日常沟通的重要工具。为了实现高效、稳定的邮件发送功能,许多开发者选择利用邮件发送库来构建自己的邮件系统。...

    JMAIL发送邮件

    ### JMAIL发送邮件知识点 #### 一、JMAIL概述 JMAIL是一款用于.NET环境下的电子邮件组件,它提供了简单易用的API接口,使得开发者能够轻松地实现邮件的发送功能。在本篇内容中,我们将详细介绍如何使用JMAIL组件在...

    基于Jmail的邮件收发系统

    Jmail通过JavaMail API与SMTP服务器进行通信,实现邮件的发送。SMTP是互联网上用来传输邮件的标准协议,它规定了邮件服务器如何将邮件从一个服务器传送到另一个服务器。在发送邮件时,Jmail会建立一个到SMTP服务器的...

    VBA:借助jmail控件一键发送邮件

    提供的文件“Jmail发邮件--成功.xls”可能是包含VBA代码的示例Excel工作簿,其中包含了完整的邮件发送功能。你可以打开这个文件,查看并学习如何将上述代码整合进实际的VBA项目中。 总的来说,利用VBA和Jmail控件,...

    用Jmail发邮件

    以下是一些关键步骤来实现“用Jmail发邮件”: 1. **设置项目**:在VC++中新建一个Win32 Console Application项目,然后添加Jmail的动态链接库(DLL)和头文件(如`jmail.h`,尽管在给定的文件列表中未列出,但通常...

    asp.net 实现jmail 接收和发送邮件程序.zip

    4. 处理邮件内容:邮件对象包含了邮件的各个部分,如主题、发件人、正文等,可以进行解析和操作。 5. 断开连接:完成操作后,记得调用`pop3.Disconnect();`断开与服务器的连接。 五、示例代码 下面是一个简单的C#...

Global site tag (gtag.js) - Google Analytics