java实现邮件发送准备工作(前期配置)

举报
穆雄雄 发表于 2022/12/17 11:42:01 2022/12/17
【摘要】 ​        本文主要用的邮件客户端是:office 2007的outlook,服务器是apache-james-2.3.2,首先我们来配置一下这个james服务器:       1.将james服务器解压到硬盘目录下,注意目录不能有中文,如e:盘下       2.修改apps/james/sar-inf目录下的config.xml          把  <servername>lo...

        本文主要用的邮件客户端是:office 2007的outlook,服务器是apache-james-2.3.2,首先我们来配置一下这个james服务器:

       1.将james服务器解压到硬盘目录下,注意目录不能有中文,如e:盘下
       2.修改apps/james/sar-inf目录下的config.xml
          把  <servername>localhost</servername>修改为  <servername>mail.com</servername>

       3.双击bin目录下的run.bat启动服务器,收发邮件时服务器必须为启动状态,启动时需要配置好java环境。启动完成如下图所示:

编辑
       4.在DOS下输入 telnet localhost 4555 回车连接服务器进行用户的维护(个别电脑没有打开telnet服务, 可以在控   制中打开,win7中要添加该服务,在程序和功能中)
   默认用户和密码:root/root
   命令:
   listusers: 显示所有用户
   adduser tina 123456 :为添加用户名为 tina 密码为 123456的用户
   deluser tina  删除tina用户

我来上图具体看一下:

编辑

最后一步是执行deluser tom,删除Tom之后还剩4个用户。

    二:接下来就是配置outlook客户端,Outlook是office自带的收电子邮件的软件,只要装了office就有,我们来看看怎么配置:

需要在C:\Windows\System32\drivers\etc\hosts 文件中添加 127.0.0.1 mail.com        //jerry@mail.com
  保证以后在写mail.com 时指的是本地服务
   配置步骤:
    1.工具->账户设置

编辑

编辑

 编辑编辑编辑

至此,我们的outlook就配置成功了!

    接下来就我们就开始编码了,我先通过两种不同的方法来发邮件:【下面的链接,直接点进去查看源码就行】

     直接上代码:3个类,两个主要的类,一个测试类:

   主类(Mail):


 /**  
* @Title: Mail.java
* @Package org.service.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-5-30 下午10:20:35
* @version V1.0  
*/
package org.service.impl;

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
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;

 /**   
 *    
 * 项目名称:spring_Schop8   
 * 类名称:Mail   
 * 类描述:   不用spring实现邮件发送
 * 创建人:Mu Xiongxiong  
 * 创建时间:2017-5-30 下午10:20:35   
 * 修改人:Mu Xiongxiong   
 * 修改时间:2017-5-30 下午10:20:35   
 * 修改备注:   
 * @version    
 *    
 */
public class Mail {
	
	private String mailServer,from ,to , mailSubject,mailContent,username,password;

	public Mail(String mailServer, String from, String to, String mailSubject,
			String mailContent, String username, String password) {
		this.mailServer = mailServer;
		this.from = from;
		this.to = to;
		this.mailSubject = mailSubject;
		this.mailContent = mailContent;
		this.username = username;
		this.password = password;
	}

	public Mail() {
		username = "tina";
		password = "123"; 
		mailServer = "mail.com";
		from  = "tina@mail.com";
		to  = "jerry@mail.com";
		mailSubject = "问好";
		mailContent = "好久没见,最近可好!";
		
	}
	
	public void send(){
		//设置服务器
		Properties prop = System.getProperties();
		prop.put("mail.smtp.host", mailServer);
		prop.put("mail.smtp.auth", "true");
		//产生Session服务
		EmailAuthenticator mailauth = new EmailAuthenticator(username, password);
		Session mailSession = Session.getInstance(prop,(Authenticator)mailauth);
		//封装message对象
		Message message = new MimeMessage(mailSession);
		try {
			message.setFrom(new InternetAddress(from));    //设置发送人
			message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); //设置主题
			message.setSubject(mailSubject);                                      //设置标题
			message.setContent(mailContent,"text/html;charset=utf-8");            //设置内容
			message.setSentDate(new Date());                                      //设置日期
			//和粗昂就爱你Transport实例
			Transport tran = mailSession.getTransport("smtp");
			tran.send(message, message.getAllRecipients());
			tran.close();
		} catch (AddressException e) {
			// TODO 异常执行块!
			e.printStackTrace();
		} catch (MessagingException e) {
			// TODO 异常执行块!
			e.printStackTrace();
		}    //
		
	}
	
	

}


第二个主类(EmailAuthenticator):



package org.service.impl;


import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

import org.hibernate.validator.constraints.Email;

public class EmailAuthenticator extends Authenticator {
	private String username=null;
	private String userpass = null;
	
	
	
	public EmailAuthenticator(String username, String userpass) {
		super();
		this.username = username;
		this.userpass = userpass;
	}


	public  PasswordAuthentication getPasswordAuthentication(){
		return new PasswordAuthentication(username, userpass);
	}
	
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserpass() {
		return userpass;
	}
	public void setUserpass(String userpass) {
		this.userpass = userpass;
	}
	

}


测试类:



/**
	 * 
	* @Title: testMail1
	* @Description: 该方法的主要作用:java实现底层的邮件发送
	* @param   设定文件  
	* @return  返回类型:void   
	* @throws
	 */
	@Test
	public void testMail1(){
		Mail mail = new Mail();
		mail.send();
		System.out.println("发送成功");
	}


源码上完了,再看一下运行的结果吧:


编辑

可以看到发送人,发送时间,还有发送内容!已经发送成功!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。