【第22期】观点:IT 行业加班,到底有没有价值?

java邮件发送

原创 2016年08月28日 20:11:12

1.sendEmail方式

</pre><pre name="code" class="java"><pre name="code" class="java">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;

public class sendEmail
{
	public static void main(String[] args) throws AddressException,
			MessagingException
	{
		String SEND_USER = "135xxxx@163.com";
		String SEND_UNAME = "135xxxx";
		String SEND_PWD = "abcabc";//密码
		String VALUE_SMTP = "smtp.163.com";
		// 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.host", "smtp.163.com");
		// props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
		// props.setProperty("mail.smtp.socketFactory.fallback", "false");
		props.setProperty("mail.smtp.port", "25");
		// props.setProperty("mail.smtp.port", "587");
		// props.setProperty("mail.smtp.socketFactory.port", "25");
		// props.setProperty("mail.smtp.socketFactory.port", "587");
		props.put("mail.smtp.auth", "true");
		final String username = "135xxxx";
		final String password = "abcabc";
		Session session = Session.getDefaultInstance(props,
				new Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication()
					{
						return new PasswordAuthentication(username, password);
					}
				});

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

		// -- Set the FROM and TO fields --
		msg.setFrom(new InternetAddress(username + "@163.com"));
		msg.setRecipients(Message.RecipientType.TO,
				InternetAddress.parse("135xxxx@163.com", false));
		msg.setSubject("Hello---");
		msg.setText("How are you");
		msg.setSentDate(new Date());
		Transport transport = session.getTransport("smtp");
		// smtp验证,就是你用来发邮件的邮箱用户名密码
		transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
		// 发送
		transport.sendMessage(msg, msg.getAllRecipients());
		Transport.send(msg);
		transport.close();

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



2.SendmailUtil方式
</pre><pre name="code" class="java">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;


public class SendmailUtil
{

	// 设置服务器
    private static String KEY_SMTP = "mail.smtp.host";
    private static String VALUE_SMTP = "smtp.163.com";
    // 服务器验证
    private static String KEY_PROPS = "mail.smtp.auth";
    private static boolean VALUE_PROPS = true;
    // 发件人用户名、密码
    private String SEND_USER = "13xxxx@163.com";
    private String SEND_UNAME = "<span style="font-family: Arial, Helvetica, sans-serif;">13xxxx</span><span style="font-family: Arial, Helvetica, sans-serif;">";</span>
    private String SEND_PWD = "abcabc";
    // 建立会话
    private MimeMessage message;
    private Session s;
 
    /*
     * 初始化方法
     */
    public SendmailUtil() {
        Properties props = System.getProperties();
        props.setProperty(KEY_SMTP, VALUE_SMTP);
        props.put(KEY_PROPS, "true");
        //props.put("mail.smtp.auth", "true");
        s =  Session.getDefaultInstance(props, new Authenticator(){
              protected PasswordAuthentication getPasswordAuthentication() {
                  return new PasswordAuthentication(SEND_UNAME, SEND_PWD);
              }});
        s.setDebug(true);
        message = new MimeMessage(s);
    }
 
    /**
     * 发送邮件
     * 
     * @param headName
     *            邮件头文件名
     * @param sendHtml
     *            邮件内容
     * @param receiveUser
     *            收件人地址
     */
    public void doSendHtmlEmail(String headName, String sendHtml,
            String receiveUser) {
        try {
            // 发件人
            InternetAddress from = new InternetAddress(SEND_USER);
            message.setFrom(from);
            // 收件人
            InternetAddress to = new InternetAddress(receiveUser);
            message.setRecipient(Message.RecipientType.TO, to);
            // 邮件标题
            message.setSubject(headName);
            String content = sendHtml.toString();
            // 邮件内容,也可以使纯文本"text/plain"
            message.setContent(content, "text/html;charset=GBK");
            message.saveChanges();
            Transport transport = s.getTransport("smtp");
            // smtp验证,就是你用来发邮件的邮箱用户名密码
            transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
            // 发送
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
            System.out.println("send success!");
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
        SendmailUtil se = new SendmailUtil();
        se.doSendHtmlEmail("邮件头文件名", "邮件内容", "186xxxx@163.com");
    }
}

ps: 163邮箱有安全限制,需要登陆邮箱之后在“设置”里开启并使用授权码代替邮箱的登陆密码。



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

java邮件发送和短信发送(一)

最近刚完成一个任务-付款提醒邮件的发送,对于java邮件的发送有了更深刻的认识,的确java提供的邮件发送机制的确让邮件发送这个问题变得灵活而又简单。并且由于项目组其他人负责了短信的发送,巧的是这个邮...

java web邮件发送实例

        邮件发送工具类,这里使用了多个发送者进行轮询,每次选择发送频次最低的发送者进行发送,目的是为了防止同一发送方发送的过于频繁被屏蔽。使用的java mail版本是1.4.7         maven配置...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

用Spring让Java Mail支持简化邮件发送

今天我们谈到Spring提供的邮件发送不仅支持简单邮件的发送、添加附件,而且还可以使用velocity模板控制页面样式。     闲来无事,翻看《Spring in Action》,发现Spring...

java邮件发送

1.邮件信息封装bean [code="java"] package com.mail; import java.util.Properties; /** * @desc 设置邮件基本信息 */ public class MailInfo { // 发送...

java web邮件发送实例

java web邮件发送实例 博客分类: 实用代码典藏 javamailqqutil          邮件发送工具类,这里使用了多个发送者进行轮询,每次选择发送频次最低的...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)