`
jsczxy2
  • 浏览: 1269812 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

SSL方式发送mail

    博客分类:
  • java
阅读更多

随意了,以下是3段简单代码,测试数据采取gmail方式:

package com.mail;

import java.io.UnsupportedEncodingException;
import java.security.Security;
import java.util.Properties;

import javax.mail.Message;
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 SSLMail {
	
	private static String session_sender = "";
	
	private static String session_password = "";

	public static int sendMail(String smtp,String smtp_port,String sender,String password,String subject, String body,
			String mailto, String mailFrom) {
		int flag = 0;
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

		Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "smtp");
		props.setProperty("mail.host", smtp);
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", smtp_port);
		props.put("mail.smtp.socketFactory.port", smtp_port);
		props.put("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");
		props.put("mail.smtp.socketFactory.fallback", "false");
		props.setProperty("mail.smtp.quitwait", "false");
		session_sender = sender;
		session_password = password;
		Session session = Session.getDefaultInstance(props,
				new javax.mail.Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication(session_sender, session_password);
					}
				});

		MimeMessage message = new MimeMessage(session);
		try {
			InternetAddress address = null;
			try {
				address = new InternetAddress(sender, mailFrom);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}

			message.setFrom(address);
			message.setSubject(subject);
			message.setContent(body, "text/html; charset=utf-8");
			if (mailto.indexOf(',') > 0)
				message.setRecipients(Message.RecipientType.TO, InternetAddress
						.parse(mailto));
			else
				message.setRecipient(Message.RecipientType.TO,
						new InternetAddress(mailto));

			Transport.send(message);
			System.out.println("sender:" + sender + ",recipients:" + mailto
					+ ",mailFrom:" + mailFrom);
		} catch (AddressException e) {
			e.printStackTrace();
			flag = 1;
		} catch (MessagingException e) {
			e.printStackTrace();
			flag = 2;
		}
		return flag;
	}

	public static void main(String args[]) throws Exception {
		System.out.println(SSLMail.sendMail("smtp.gmail.com","465","jsczxy2@gmail.com","ooxx","aaa", "ccc",
				"jsczxy2@163.com", "sendername"));

	}

}

 

package com.mail;

import java.security.Security;
import java.util.Date;
import java.util.Properties;

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

/**
 * 使用Gmail发送邮件
 * 
 * @author Winter Lau
 */
public class GmailSender {

	public static void main(String[] args) throws AddressException,
			MessagingException {
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		// Get a Properties object
		Properties props = System.getProperties();
		props.setProperty("mail.smtp.host", "smtp.gmail.com");
		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.put("mail.smtp.auth", "true");
		final String username = "Cao.Zzhen@gmail.com";
		final String password = "13785211300";
		Session session = Session.getDefaultInstance(props,
				new Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication(username, password);
					}
				});

		// -- Create a new message --
		Message msg = new MimeMessage(session);

		// -- Set the FROM and TO fields --
		msg.setFrom(new InternetAddress(username));
		msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
				"Cao.Zzhen@gmail.com", false));
		msg.setSubject("Hello");
		msg.setText("How are you");
		msg.setSentDate(new Date());
		Transport.send(msg);

		System.out.println("Message sent.");
	}
}

 

 

package com.mail;

import java.io.UnsupportedEncodingException;
import java.security.Security;
import java.util.Properties;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

/**
 * 用于收取Gmail邮件
 * 
 * @author Winter Lau
 */
public class GmailFetch {

	public static void main(String argv[]) throws Exception {

		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

		// Get a Properties object
		Properties props = System.getProperties();
		props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
		props.setProperty("mail.pop3.socketFactory.fallback", "false");
		props.setProperty("mail.pop3.port", "995");
		props.setProperty("mail.pop3.socketFactory.port", "995");

		// 以下步骤跟一般的JavaMail操作相同
		Session session = Session.getDefaultInstance(props, null);

		// 请将红色部分对应替换成你的邮箱帐号和密码
		URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,
				"Cao.Zzhen@gmail.com", "13785211300");
		Store store = session.getStore(urln);
		Folder inbox = null;
		try {
			store.connect();
			inbox = store.getFolder("INBOX");
			inbox.open(Folder.READ_ONLY);
			FetchProfile profile = new FetchProfile();
			profile.add(FetchProfile.Item.ENVELOPE);
			Message[] messages = inbox.getMessages();
			inbox.fetch(messages, profile);
			System.out.println("收件箱的邮件数:" + messages.length);
			for (int i = 0; i < messages.length; i++) {
				// 邮件发送者
				String from = decodeText(messages[i].getFrom()[0].toString());
				InternetAddress ia = new InternetAddress(from);
				System.out.println("FROM:" + ia.getPersonal() + '('
						+ ia.getAddress() + ')');
				// 邮件标题
				System.out.println("TITLE:" + messages[i].getSubject());
				// 邮件大小
				System.out.println("SIZE:" + messages[i].getSize());
				// 邮件发送时间
				System.out.println("DATE:" + messages[i].getSentDate());
			}
		} finally {
			try {
				inbox.close(false);
			} catch (Exception e) {
			}
			try {
				store.close();
			} catch (Exception e) {
			}
		}
	}

	protected static String decodeText(String text)
			throws UnsupportedEncodingException {
		if (text == null)
			return null;
		if (text.startsWith("=?GB") || text.startsWith("=?gb"))
			text = MimeUtility.decodeText(text);
		else
			text = new String(text.getBytes("ISO8859_1"));
		return text;
	}

}
 
分享到:
评论

相关推荐

    易语言执行SSL发送邮件

    在“易语言执行SSL发送邮件”这个主题中,我们主要关注的是如何使用易语言来实现通过SSL(Secure Sockets Layer)协议发送电子邮件。 SSL是网络安全传输的一种标准协议,主要用于提供数据加密、服务器身份验证和...

    SMTP发送邮件 SSL

    综上所述,SMTP发送邮件结合SSL或TLS提供了安全的邮件传输手段,支持发送附件的功能使得邮件更加实用,而跨平台的设计则确保了代码的通用性和可移植性。这些技术在现代电子邮件系统中扮演着至关重要的角色。

    利用 spring mail 通过 gmail(SSL) 发邮件

    本教程将详细讲解如何利用Spring Mail通过Gmail的SSL(安全套接层)协议来发送邮件。 首先,我们需要在项目中引入Spring Mail的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    关于用javamail发送邮件时,由于邮件服务器要SSL,解决办法

    在尝试使用JavaMail发送邮件时,如果邮件服务器要求使用SSL(Secure Socket Layer)或TLS(Transport Layer Security)协议来确保通信安全,开发者可能会遇到一些挑战。本文将深入探讨如何解决这一问题,主要基于...

    Java Socket 实现SMTP邮件发送,支持SSL/TSL

    在本案例中,我们将关注如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并支持SSL(Secure Sockets Layer)和TLS(Transport Layer Security)安全协议。 SMTP是一种互联网标准,用于在...

    SMTP发送邮件程序(支持SSL和TLS)

    SMTP(Simple Mail Transfer Protocol)是互联网上用于发送电子邮件的标准协议,而SSL(Secure Sockets Layer)和TLS(Transport Layer Security)则是提供网络通信安全的重要技术。在这个“SMTP发送邮件程序”中,...

    c++ smpt发送邮件类 ssl/tls

    标题 "c++ smpt发送邮件类 ssl/tls" 涉及的是在C++编程环境中使用SMTP(Simple Mail Transfer Protocol)协议并通过SSL/TLS(Secure Socket Layer/Transport Layer Security)加密来发送电子邮件的知识。SMTP是...

    PHPMailer发送邮件 SSL465端口发送邮件

    由于许多网络服务提供商限制了传统的SMTP端口25,以防止垃圾邮件的传播,因此开发者通常转向使用其他端口,如SSL加密的465端口来发送邮件。本文将深入探讨如何使用PHPMailer通过SSL465端口发送邮件。 首先,让我们...

    Delphi开发的支持SSL并且可以发送HTML格式邮件的EXE程序(Send-Mail.exe)

    1. 支持SSL发送邮件; 2. 支持32位和64位程序; 3. 支持纯文本邮件和 HTML 格式邮件; 4. 支持同步发送邮件和异步(线程)发送邮件 5. 支持发送结果回调; 6. 只需要调用一个函数,使用简单;

    javamail 发送邮件的例子(通过了qq 和gmail的邮箱)有SSL 安全的方式

    这个例子展示了如何使用JavaMail API通过QQ和Gmail邮箱实现邮件的发送,并且使用了SSL(Secure Socket Layer)来确保通信的安全性。SSL是网络安全传输的一种标准,它可以加密传输的数据,防止在互联网上被窃取或篡改...

    php发送email程序,E-mail发送程序

    在处理发送状态时,如果`$mail-&gt;send()`返回`false`,则表示发送失败,可以通过`$mail-&gt;ErrorInfo`获取错误信息;如果返回`true`,则表示发送成功。 在实际开发中,为了确保邮件发送的可靠性,通常会添加错误捕获和...

    javax.mail发送邮件

    根据提供的文件信息,我们可以深入探讨如何使用`javax.mail`包中的类来实现通过QQ邮箱...通过这种方式,我们可以轻松地集成邮件发送功能到Java应用中,无论是简单的通知邮件还是复杂的批量邮件发送场景都能应对自如。

    JavaMail配置SSL服务器及安装证书

    3. **SMTPS和IMAPS**: SMTPS是在SMTP(Simple Mail Transfer Protocol)上添加了SSL/TLS层的安全版本,而IMAPS是在IMAP(Internet Message Access Protocol)上使用SSL/TLS。在JavaMail中,我们通常通过SMTPS发送...

    采用java的javax.mail发送 mail

    Java的javax.mail API是用于在Java应用程序中发送和接收电子邮件的标准库。这个API提供了一种与邮件服务器交互的抽象方式,使得开发者无需关心具体的邮件协议(如SMTP、POP3或IMAP)。在Java中,使用javax.mail库...

    flask-mail发送邮件

    ### Flask-Mail 发送邮件知识点详解 #### 一、Flask-Mail 插件介绍 Flask-Mail 是一个用于 Flask 框架的扩展插件,它简化了应用中发送电子邮件的过程。通过 Flask-Mail,开发者可以轻松地集成邮件发送功能,而无需...

    SMTP发送邮件工具类(C++版本) 支持 SSL

    SMTP(Simple Mail Transfer Protocol)是互联网上用于发送电子邮件的标准协议,而C++是一种广泛使用的编程语言,能够构建高效且灵活的应用程序。在这个场景中,我们讨论的是一个C++实现的SMTP邮件发送工具类,该...

    java发邮件(ssl)

    如果你用myEclipse进行开发,发送邮件,如果JavaEE版本和JavaMail的版本不一致,运行时可能会出现以下的错误: Exception in thread "main" java.lang.NoClassDefFoundError 在javaEE1.4下测试正常

    spring mail通过代理发送邮件

    标题中的“spring mail通过代理发送邮件”涉及到的是Spring框架中处理电子邮件发送的功能,尤其是在网络环境有限制或需要通过代理服务器的情况下。Spring Mail是Spring Framework的一个扩展模块,它提供了与JavaMail...

    phpmail发送邮件

    首先,我们需要了解SMTP(Simple Mail Transfer Protocol),它是互联网上用于发送邮件的标准协议。PHPMailer通过与SMTP服务器通信,实现了邮件的发送。为了使用PHPMailer,你需要下载并引入这个库到你的项目中。在...

Global site tag (gtag.js) - Google Analytics