使用java在本地服务器实现简单的邮件的发送与接受

软件:易邮邮件服务器  Foxmail

具体实现:

package cn.book.user.util;

import java.util.Properties;

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


//发送邮件的工具类
public class MailService {
	
	public static void sendMail(String recipient,String code) {
		/*
		 * 1.获取Session对象
		 * 2.创建一个代表邮件的对象Message
		 * 3.发送邮件Transport
		 */
		
		//1.获取连接对象
		Properties props = new Properties();
		props.setProperty("mail.host", "localhost");
		Session session = Session.getInstance(props, new Authenticator(){
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("BookCityService@book.com","123");
			}	
		});
		
		//2.创建邮件对象
		Message message = new MimeMessage(session);
		
		try {
			//设置发件人
			message.setFrom(new InternetAddress("BookCityService@book.com"));
			//设置收件人
			message.addRecipient(RecipientType.TO, new InternetAddress(recipient));
			//设置邮件标题
			message.setSubject("来自网上书城的激活邮件");
			//设置邮件内容,命令行ipconfig查看本地ip地址
			String url = "http://192.168.121.100:8080/bookCity/user_active.action?code="+code;
			message.setContent("<h1>您好,请点击下面的链接完成激活!</h1><h3><a href='" + url + "'>" + url + "</a></h3>","text/html;charset=UTF-8");
			//3.发送邮件
			Transport.send(message);
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		
	}
	
	public static void main(String[] args) {
		sendMail("aaa@book.com","xxwdwd");

	}
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个用于接受邮件的代理服务器需要通过以下步骤: 1. 使用Java Socket编程创建一个服务器端程序,该程序监听特定的端口并接受客户端连接。 2. 通过Java Mail API实现SMTP协议,将接收到的邮件转发到指定的邮件服务器。 3. 对于每封邮件,可以使用Java Mail API将邮件内容存储到本地磁盘或数据库中。 下面是一个简单Java代理服务器代码示例: ```java import java.net.*; import java.io.*; public class MailProxyServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(25); } catch (IOException e) { System.err.println("Could not listen on port: 25."); System.exit(1); } Socket clientSocket = null; System.out.println("Waiting for connection....."); try { clientSocket = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } System.out.println("Connection successful"); System.out.println("Waiting for input....."); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("Server: " + inputLine); if (inputLine.startsWith("MAIL FROM:")) { // 截取发件人地址 String fromAddress = inputLine.substring(inputLine.indexOf("<") + 1, inputLine.indexOf(">")); System.out.println("From address: " + fromAddress); // 使用Java Mail API将邮件转发到指定的邮件服务器 sendMail(fromAddress, "[email protected]", "Subject", "Body"); } out.println(inputLine); if (inputLine.equals("QUIT")) { break; } } out.close(); in.close(); clientSocket.close(); serverSocket.close(); } private static void sendMail(String fromAddress, String toAddress, String subject, String body) { // 创建邮件会话 Session session = Session.getDefaultInstance(System.getProperties(), null); try { // 创建邮件消息 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(fromAddress)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(toAddress)); message.setSubject(subject); message.setText(body); // 发送邮件 Transport.send(message); System.out.println("Mail sent successfully."); } catch (MessagingException e) { e.printStackTrace(); } } } ``` 注意:这只是一个简单的示例代码,实际应用中需要考虑更多的异常处理、安全和性能问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值