JAVA发送Email

今天老师讲完第四章了,JAVAMAIL的,主要就是用JAVA来发送邮件了,嘿嘿,这样看来,后天的上机课是能够开网了,呵呵,好爽,今天讲课主要就是用JAVAMAIL发送邮件的,下面是发送邮件的代码:

import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendMail {
public static void main(String[] args) {
try {
Properties p = new Properties(); //Properties p = System.getProperties();
p.put("mail.smtp.auth", "true");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host", "smtp.163.com");
p.put("mail.smtp.port", "25");
//建立会话
Session session = Session.getInstance(p);
Message msg = new MimeMessage(session); //建立信息

msg.setFrom(new InternetAddress("bluebit_cn@163.com")); //发件人
msg.setRecipient(Message.RecipientType.TO,
new InternetAddress("javaonline@163.com")); //收件人

msg.setSentDate(new Date()); // 发送日期
msg.setSubject("答话稀有"); // 主题
msg.setText("快点下在"); //内容
// 邮件服务器进行验证
Transport tran = session.getTransport("smtp");
tran.connect("smtp.163.com", "bluebit_cn", "xiaohao");
// bluebit_cn是用户名,xiaohao是密码
tran.sendMessage(msg, msg.getAllRecipients()); // 发送
System.out.println("邮件发送成功");

} catch (Exception e) {
e.printStackTrace();
}
}
}

上面的代码是一个简单的用JAVA发送邮件的例子,其中我们是用163的邮箱来发送邮件的,所以服务器是smtp.163.com,然后发件人是bluebit_cn@163.com,注意,因为我们是用163的服务器来发送邮件的,所以我们的发件人就必须是163的邮箱,至于收件人的话可以是任意的邮箱。
整个发邮件的思想:导入相关的包→生成属性对象→创建javamail会话→编写javamail消息→发送javamail消息。
导入包用不着多说,生成属性对象的话就是开关部分,这个的话全世界都是一样的,只是注意那个邮件服务器的设置就行,对了,额外说句,发送邮件是用SMTP协议,接收邮件才是POP3协议或者其他的。。。
下面的话还是发送邮件的,不过是通过HTML网页来发送的,网页制作我就不多说了,下面是源码,而且是带有附件的源码:


import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


public class sendMailMul extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";

//Initialize global variables
public void init() throws ServletException {
}

//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");

String mailServer = request.getParameter("txtServer").trim();
String mailFrom = request.getParameter("txtFrom").trim();
String mailTo = request.getParameter("txtTo").trim();
String mailSubject = request.getParameter("txtSubject").trim();
String mailMessage = request.getParameter("txtMessage").trim();
String file = request.getParameter("txtAttachment").trim();

mailSubject = new String(mailSubject.getBytes("ISO-8859-1"), "gbk");
mailMessage = new String(mailMessage.getBytes("ISO-8859-1"), "gbk");
file = new String(file.getBytes("ISO-8859-1"), "gbk");

System.out.println("页面数据:");
System.out.println("mailServer:" + mailServer);
System.out.println("mailFrom:" + mailFrom);
System.out.println("mailTo:" + mailTo);
System.out.println("mailSubject:" + mailSubject);
System.out.println("mailMessage:" + mailMessage);
System.out.println("file:" + file);

Properties p = new Properties();
p.put("mail.smtp.auth", "true");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host", mailServer);
p.put("mail.smtp.port", "25");

Session mailsession = Session.getInstance(p);

MimeMessage msg = new MimeMessage(mailsession);

try {
msg.setFrom(new InternetAddress(mailFrom));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(mailTo));
msg.setSentDate(new Date());
msg.setSubject(mailSubject);

//设置邮件内容,作为Multipart对象的一部分
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(mailMessage);
Multipart mulp = new MimeMultipart();
mulp.addBodyPart(mbp);
//设置附件,作为Multipart对象的一部分
mbp = new MimeBodyPart();
DataSource source = new FileDataSource(file);
mbp.setDataHandler(new DataHandler(source));
mbp.setFileName(file);
mulp.addBodyPart(mbp);
//设置信息内容,将Multipart 对象加入信息中
msg.setContent(mulp);

Transport tran = mailsession.getTransport("smtp");
tran.connect(mailServer, "bluebit_cn", "xiaohao");
tran.sendMessage(msg, msg.getAllRecipients());

msg.writeTo(System.out);
out.println("邮件已经发送到<br>" + mailTo);

} catch (Exception e) {
e.printStackTrace();
}

out.close();
}

//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}

//Clean up resources
public void destroy() {
}
}
Java发送电子邮件通常需要使用JavaMail API,这是一个标准库,它提供了一组用于处理SMTP协议(简单邮件传输协议)的类。以下是一个简单的示例,展示如何使用JavaMail发送一封普通的文本邮件: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) { String from = "your-email@example.com"; String to = "recipient-email@example.com"; String password = "your-password"; // 使用应用程序密码或授权码 String host = "smtp.example.com"; // 你的SMTP服务器地址 Properties props = new Properties(); props.put("mail.smtp.auth", "true"); // 需要身份验证 props.put("mail.smtp.starttls.enable", "true"); // 启用TLS加密 props.put("mail.smtp.host", host); props.put("mail.smtp.port", "587"); // 根据你的SMTP服务器设置端口 Session session = Session.getInstance(props, new Authenticator() { // 实现Authenticator接口 protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject("测试Java邮件"); message.setText("这是一封通过Java发送的电子邮件"); Transport.send(message); System.out.println("Email sent successfully."); } catch (MessagingException e) { e.printStackTrace(); } } } ``` 在这个例子中,你需要替换`from`、`to`、`password`和`host`为你实际的邮箱信息。请注意,为了运行此代码,你需要将JavaMail API添加到你的项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值