用javamail发邮件

该博客展示了一个基于Swing的邮件发送程序。程序包含收信人、主题、内容、附件等输入框及发送、重填按钮。对输入进行有效性检验,能处理纯文本邮件和带附件邮件,使用JavaMail API实现邮件发送,发送成功或失败会有相应提示。
用javamail发邮件(含附件)

作者:◆后街男孩◆
日期:2000-12-14 17:21:16

//Title: Your Product Name
//Version:
//Copyright: Copyright (c) 1999
//Author: Your Name
//Company: Your Company
//Description: Your description

package Mail;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


public class SendMail extends Frame {
Label label1 = new Label();
TextField textField1 = new TextField();
Label label2 = new Label();
TextField textField2 = new TextField();
Label label3 = new Label();
TextArea textArea1 = new TextArea();
Label label4 = new Label();
TextField textField3 = new TextField();
Button button1 = new Button();
Button button2 = new Button();

public SendMail() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if(e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public static void main(String[] args) {
SendMail sendMail1 = new SendMail();
sendMail1.setSize (400,400);
sendMail1.show (true);
}

private void jbInit() throws Exception {
label1.setBounds(new Rectangle(41, 38, 45, 23));
label1.setText("收信人");
this.setLayout(null);
this.setSize (400,400);
textField1.setBounds(new Rectangle(110, 36, 174, 23));
label2.setBounds(new Rectangle(42, 75, 38, 23));
label2.setText("主题");
textField2.setBounds(new Rectangle(110, 76, 173, 23));
label3.setBounds(new Rectangle(43, 148, 38, 23));
label3.setText("内容");
textArea1.setBounds(new Rectangle(110, 155, 256, 170));
label4.setBounds(new Rectangle(45, 111, 44, 23));
label4.setText("附件");
textField3.setBounds(new Rectangle(110, 115, 173, 23));
button1.setBounds(new Rectangle(70, 348, 88, 24));
button1.setLabel("发送");
button1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
});
button2.setBounds(new Rectangle(244, 348, 88, 24));
button2.setLabel("重填");
button2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {
button2_actionPerformed(e);
}
});
this.add(label1, null);
this.add(textField1, null);
this.add(textField2, null);
this.add(textField3, null);
this.add(textArea1, null);
this.add(label2, null);
this.add(label4, null);
this.add(label3, null);
this.add(button2, null);
this.add(button1, null);
}

void button2_actionPerformed(ActionEvent e) {
textField1.setText ("");
textField2.setText ("");
textField3.setText ("");
textArea1.setText ("");
}

void button1_actionPerformed(ActionEvent e) {
String to,from,subject,message,attachment;
from="toone@mail.com";
to=textField1.getText ();
if(to.trim ().equals ("")){
JOptionPane.showMessageDialog(this, "收信人不能为空!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
message=textArea1.getText();
attachment=textField3.getText ();
if(message.trim ().equals ("")&&attachment.trim ().equals ("")){
JOptionPane.showMessageDialog(this, "内容和附件不能都为空!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
if(to.indexOf ("@")==-1) {
JOptionPane.showMessageDialog(this, "无效的收信人地址!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
subject=textField2.getText ().trim ();
if(subject.equals (""))
if(JOptionPane.showConfirmDialog(this,"你不需要设置主题吗?","系统提示",0)!=0)
return;
File file=new File(attachment);
if(!attachment.equals ("")){
if(!file.isFile ()){
JOptionPane.showMessageDialog(this, "无效的附件名!", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
}
//以上程序是检验输入的有效性

// create some properties and get the default Session
Properties props = System.getProperties();
props.put("mail.smtp.host", "192.168.0.1");
Session session = Session.getDefaultInstance(props, null);
session.setDebug(false);

try{
// create a message
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.addHeader ("toone","fangjianhua");
if(attachment.equals ("")){
System.out.println ("This is plain mail");
msg.setText (message);
}
else {
System.out.println ("this is a multipart mail");
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(message);

// create the second message part
MimeBodyPart mbp2 = new MimeBodyPart();

// attach the file to the message
FileDataSource fds = new FileDataSource(file);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());

// create the Multipart and its parts to it
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);

// add the Multipart to the message
msg.setContent(mp);
}
msg.setSentDate(new Date());
// send the message
//for(int i=0;i<10;i++)
Transport.send(msg);
//System.out.println ("Send a mail success");
JOptionPane.showMessageDialog(this, "邮件发送成功", "系统提示",JOptionPane.INFORMATION_MESSAGE );
}
catch(Exception ex){
JOptionPane.showMessageDialog(this, "发送邮件失败", "错误", JOptionPane.ERROR_MESSAGE);
}

}
}

【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)内容概要:本文介绍了一种基于数据驱动的结构健康监测(SHM)方法,利用选定位置的引导式兰姆波响应对航空航天等领域的结构进行原位损伤检测,实现对损伤位置与程度的精确评估,相关方法通过Matlab代码实现,具有较强的工程应用价值。文中还提到了该技术在无人机、水下机器人、太阳能系统、四轴飞行器等多个工程领域的交叉应用,展示了其在复杂系统状态监测与故障诊断中的广泛适用性。此外,文档列举了大量基于Matlab/Simulink的科研仿真资源,涵盖信号处理、路径规划、机器学习、电力系统优化等多个方向,构成一个综合性科研技术支持体系。; 适合人群:具备一定Matlab编程基础,从事航空航天、结构工程、智能制造、自动化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于航空航天结构、无人机机体等关键部件的实时健康监测与早期损伤识别;②结合兰姆波信号分析与数据驱动模型,提升复杂工程系统的故障诊断精度与可靠性;③为科研项目提供Matlab仿真支持,加速算法验证与系统开发。; 阅读建议:建议读者结合文档提供的Matlab代码实例,深入理解兰姆波信号处理与损伤识别算法的实现流程,同时可参考文中列出的多种技术案例进行横向拓展学习,强化综合科研能力。
【无人机论文复现】空地多无人平台协同路径规划技术研究(Matlab代码实现)内容概要:本文围绕“空地多无人平台协同路径规划技术”的研究展开,重点在于通过Matlab代码实现对该技术的论文复现。文中详细探讨了多无人平台(如无人机与地面车辆)在复杂环境下的协同路径规划问题,涉及三维空间路径规划、动态避障、任务分配与协同控制等关键技术,结合智能优化算法(如改进粒子群算法、遗传算法、RRT等)进行路径求解与优化,旨在提升多平台系统的协作效率与任务执行能力。同时,文档列举了大量相关研究主题,涵盖无人机控制、路径规划、多智能体协同、信号处理、电力系统等多个交叉领域,展示了该方向的技术广度与深度。; 适合人群:具备一定Matlab编程基础和路径规划背景的研究生、科研人员及从事无人机、智能交通、自动化等相关领域的工程技术人员。; 使用场景及目标:①用于学术论文复现,帮助理解空地协同路径规划的核心算法与实现细节;②支撑科研项目开发,提供多平台协同控制与路径优化的技术参考;③作为教学案例,辅助讲授智能优化算法在无人系统中的实际应用。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法实现流程与参数设置,同时可参照文中列出的其他相关研究方向拓展技术视野,建议按目录顺序系统学习,并充分利用网盘资源进行仿真验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值