用JavaMail发送HTML格式的邮件

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

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import cn.soyu.util.MailClient;
import cn.soyu.shopping.view.orders;

/**
 * 使用Gmail发送邮件
 *
 * @author Rain Chen
 */
public class GmailSender {

 private static final Log logger = LogFactory.getLog(GmailSender.class);

 private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

 private static final String USERNAME = "gdunser";//设定邮箱的用户名

 private static final String PASSWORD = "cxy51920";//设定邮箱的密码

 private static final String TO_EMAIL = "gdunser@gmail.com";//设定收件人的信箱

 private static final String SUBJECT = "你有新订单!";//设定邮件标题

 private static final String FROM = "gdunser@gmail.com";//设定发件件的人

 private static final String SMTP = "smtp.gmail.com";

 public static void sender(String subject, String content) throws Exception {

  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  // Get a Properties object
  Properties props = System.getProperties();
  props.setProperty("mail.smtp.host", SMTP);
  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");

  Session session = Session.getDefaultInstance(props,
    new Authenticator() {
     protected PasswordAuthentication getPasswordAuthentication() {
      return new PasswordAuthentication(USERNAME, PASSWORD);
     }
    });

  Message msg = new MimeMessage(session);
  InternetAddress[] address = null;
  // 设定发邮件的人
  msg.setFrom(new InternetAddress(FROM));

  // 设定收信人的信箱
  address = InternetAddress.parse(TO_EMAIL, false);
  msg.setRecipients(Message.RecipientType.TO, address);

  // 设定信中的主题
  msg.setSubject(subject);

  // 设定送信的时间
  msg.setSentDate(new Date());

  Multipart mp = new MimeMultipart();
  MimeBodyPart mbp = new MimeBodyPart();

  // 设定邮件内容的类型为 text/plain 或 text/html
  mbp.setContent(content, "text/html;charset=GB2312");
  mp.addBodyPart(mbp);
  msg.setContent(mp);

  Transport transport = session.getTransport("smtp");
  transport.connect(SMTP, USERNAME, PASSWORD);
  transport.sendMessage(msg, msg.getAllRecipients());
  transport.close();
 }

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

  sender(
    SUBJECT,
    "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312' /><title>hello world</title></head><body><p>恭喜你!收到邮件了!</p><p><a href='http://www.3km.com.cn' target='_blank'>www.3km.com.cn</a> </p></body></html>");
  System.out.println("Message sent.");
 }
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
发送 HTML 格式邮件,需要使用 JavaMail API 中的 MimeMessage 和 MimeMultipart 类。下面是一个简单的样例代码: ```java import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendHtmlEmail { public static void main(String[] args) { String to = "recipient@example.com"; // 收件人邮件地址 String from = "sender@example.com"; // 发件人邮件地址 String host = "smtp.example.com"; // SMTP 服务器地址 // 设置邮件会话的属性 Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象 Session session = Session.getDefaultInstance(properties); try { // 创建一个默认的 MimeMessage 对象 MimeMessage message = new MimeMessage(session); // 设置 From: 头部头字段 message.setFrom(new InternetAddress(from)); // 设置 To: 头部头字段 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置邮件主题 message.setSubject("HTML 邮件"); // 创建一个 Multipart 消息对象 Multipart multipart = new MimeMultipart(); // 创建一个 MimeBodyPart 对象,包含 HTML 内容 BodyPart htmlBodyPart = new MimeBodyPart(); String htmlContent = "<h1>这是一封 HTML 邮件</h1><p>这是邮件正文内容。</p>"; htmlBodyPart.setContent(htmlContent, "text/html"); // 将 HTML 内容添加到 Multipart 消息对象中 multipart.addBodyPart(htmlBodyPart); // 将 Multipart 消息对象设置为邮件内容 message.setContent(multipart); // 发送邮件 Transport.send(message); System.out.println("邮件发送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } } ``` 在上面的代码中,我们首先设置了邮件会话的属性,包括 SMTP 服务器地址。然后获取默认的 Session 对象。 接着,创建一个 MimeMessage 对象,并设置发件人、收件人和邮件主题。我们还创建了一个 Multipart 消息对象,并将 HTML 内容添加到其中。最后,将 Multipart 消息对象设置为邮件内容,并发送邮件。 需要注意的是,发送邮件的过程可能需要进行身份验证。如果需要身份验证,可以通过设置 Session 对象的属性来指定身份验证相关的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值