一、WPS發送郵件功能
WPS 內置了郵件發送功能,使用方便,但是需要配置郵箱信息才能使用。
1、首先在 WPS 中選中想要發送郵件的文檔,點擊「文件」->「發送」->「發送為附件」。
2、在彈出的「發送郵件」窗口中,填寫收件人、抄送、格式等信息,點擊「發送」按鈕即可。
3、如果彈出「發件人用戶身份驗證」窗口,則需要輸入郵箱賬號和密碼進行驗證。
private static final String EMAIL_USERNAME = "你的郵箱賬號";
private static final String EMAIL_PASSWORD = "你的郵箱密碼";
private static final String EMAIL_HOST = "smtp.郵箱後綴";
public static void main(String[] args) throws Exception {
//創建一個郵件對象
MimeMessage message = new MimeMessage(Session.getDefaultInstance(System.getProperties()));
//設置發件人
message.setFrom(new InternetAddress(EMAIL_USERNAME));
//設置收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人郵箱"));
//設置郵件主題
message.setSubject("郵件主題");
//設置郵件內容
message.setContent("郵件內容", "text/html;charset=UTF-8");
//創建Transport對象
Transport transport = Session.getInstance(System.getProperties()).getTransport();
//連接郵件伺服器
transport.connect(EMAIL_HOST,EMAIL_USERNAME,EMAIL_PASSWORD);
//發送郵件
transport.sendMessage(message, message.getAllRecipients());
//關閉連接
transport.close();
}
二、一鍵發送郵件功能
一鍵發送郵件功能是通過使用郵件 API 將郵件功能集成到程序中,並提供簡單的 UI 界面,方便用戶選擇收件人、郵件主題和郵件內容。
1、創建 UI 界面,用於用戶選擇收件人、郵件主題和郵件內容。
2、使用 JavaMail API 創建郵件對象,設置收件人、郵件主題和郵件內容等信息。
3、使用 JavaMail API 發送郵件。
public static void main(String[] args) throws Exception {
//創建 JFrame 窗口
JFrame frame = new JFrame();
//添加組件到窗口,包括收件人、主題和內容選項等
frame.getContentPane().add(new EmailForm());
//設置窗口大小、可見性和關閉方式
frame.setSize(550, 350);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class EmailForm extends JPanel {
private JTextField toField;
private JTextField subjectField;
private JTextArea contentArea;
public EmailForm() {
//創建組件
toField = new JTextField();
subjectField = new JTextField();
contentArea = new JTextArea();
JButton sendButton = new JButton("發送郵件");
//添加事件監聽器
sendButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
//創建郵件對象
MimeMessage message = new MimeMessage(Session.getDefaultInstance(System.getProperties()));
//設置發件人
message.setFrom(new InternetAddress("發件人郵箱"));
//設置收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(toField.getText()));
//設置郵件主題
message.setSubject(subjectField.getText());
//設置郵件內容
message.setContent(contentArea.getText(), "text/html;charset=UTF-8");
//創建Transport對象
Transport transport = Session.getInstance(System.getProperties()).getTransport();
//連接郵件伺服器
transport.connect("smtp.郵箱後綴", "發件人郵箱", "發件人密碼");
//發送郵件
transport.sendMessage(message, message.getAllRecipients());
//關閉連接
transport.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
//將組件添加到 UI 界面
this.setLayout(new BorderLayout());
this.add(new JLabel(" 收件人:"), BorderLayout.WEST);
this.add(toField, BorderLayout.CENTER);
this.add(new JLabel(" 郵件主題:"), BorderLayout.NORTH);
this.add(subjectField, BorderLayout.NORTH);
this.add(new JScrollPane(contentArea), BorderLayout.CENTER);
this.add(sendButton, BorderLayout.SOUTH);
}
}
三、微信發送郵件功能
微信發送郵件功能是通過設置微信中的小程序,將程序與郵箱功能集成到一起,方便用戶在微信中直接發送郵件。
1、在微信中下載並安裝指定小程序。
2、在微信中進入小程序,填寫收件人、郵件主題和郵件內容等信息,點擊「發送」即可。
3、小程序通過 API 調用 JavaMail API 發送郵件。
public static void main(String[] args) throws Exception {
//創建微信小程序對象
MiniProgram miniProgram = new MiniProgram();
//添加事件監聽器,用於發送郵件
miniProgram.setOnSendButtonClickListener(new OnSendButtonClickListener() {
public void onSendButtonClicked(String to, String subject, String content) {
try {
//創建郵件對象
MimeMessage message = new MimeMessage(Session.getDefaultInstance(System.getProperties()));
//設置發件人
message.setFrom(new InternetAddress("發件人郵箱"));
//設置收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//設置郵件主題
message.setSubject(subject);
//設置郵件內容
message.setContent(content, "text/html;charset=UTF-8");
//創建Transport對象
Transport transport = Session.getInstance(System.getProperties()).getTransport();
//連接郵件伺服器
transport.connect("smtp.郵箱後綴", "發件人郵箱", "發件人密碼");
//發送郵件
transport.sendMessage(message, message.getAllRecipients());
//關閉連接
transport.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
//打開小程序的 UI 界面
miniProgram.showUI();
}
四、自動發送郵件的功能
自動發送郵件是指在程序中定時發送指定郵件,例如每天定時發送一封日報郵件。
1、使用 JavaMail API 創建郵件對象,設置收件人、郵件主題和郵件內容等信息。
2、使用 Timer 定時器設置郵件發送時間。
public static void main(String[] args) throws Exception {
//創建 Timer 定時器
Timer timer = new Timer();
//用於記錄上一次郵件發送時間
Date lastSendTime = null;
//將郵件發送任務添加到定時器中
timer.schedule(new TimerTask() {
public void run() {
try {
Date now = new Date();
//如果當前時間滿足發送條件,則發送郵件
if (isSendTime(now)) {
//創建郵件對象
MimeMessage message = new MimeMessage(Session.getDefaultInstance(System.getProperties()));
//設置發件人
message.setFrom(new InternetAddress("發件人郵箱"));
//設置收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人郵箱"));
//設置郵件主題
message.setSubject("郵件主題");
//設置郵件內容
message.setContent("郵件內容", "text/html;charset=UTF-8");
//創建Transport對象
Transport transport = Session.getInstance(System.getProperties()).getTransport();
//連接郵件伺服器
transport.connect("smtp.郵箱後綴", "發件人郵箱", "發件人密碼");
//發送郵件
transport.sendMessage(message, message.getAllRecipients());
//關閉連接
transport.close();
//更新上一次郵件發送時間
lastSendTime = now;
}
} catch (Exception e) {
e.printStackTrace();
}
}
//判斷是否滿足發送條件
private boolean isSendTime(Date now) {
if (lastSendTime == null) {
return true;
}
Calendar nowCalendar = new GregorianCalendar();
nowCalendar.setTime(now);
Calendar lastSendTimeCalendar = new GregorianCalendar();
lastSendTimeCalendar.setTime(lastSendTime);
return nowCalendar.get(Calendar.DAY_OF_YEAR) != lastSendTimeCalendar.get(Calendar.DAY_OF_YEAR);
}
}, 0, 60 * 60 * 1000); //定時發送時間間隔為1小時
}
五、掃描之後沒有發送郵件的功能
掃描之後沒有發送郵件的功能是指在掃描完畢之後,通過分析掃描結果自動發送郵件通知。
1、掃描完畢之後,將掃描結果存儲到資料庫中。
2、使用 JDBC 訪問資料庫,分析掃描結果,生成郵件內容。
3、使用 JavaMail API 發送郵件。
public static void main(String[] args) throws Exception {
//掃描完畢之後保存結果到資料庫中
saveScanResult();
//根據掃描結果生成郵件內容
String content = generateEmailContent();
//創建郵件對象
MimeMessage message = new MimeMessage(Session.getDefaultInstance(System.getProperties()));
//設置發件人
message.setFrom(new InternetAddress("發件人郵箱"));
//設置收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人郵箱"));
//設置郵件主題
message.setSubject("郵件主題");
//設置郵件內容
message.setContent(content, "text/html;charset=UTF-8");
//創建Transport對象
Transport transport = Session.getInstance(System.getProperties()).getTransport();
//連接郵件伺服器
transport.connect("smtp.郵箱後綴", "發件人郵箱", "發件人密碼");
//發送郵件
transport.sendMessage(message, message.getAllRecipients());
//關閉連接
transport.close();
}
//保存掃描結果到資料庫中
private static void saveScanResult() {
try {
//連接資料庫
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
//執行保存操作
PreparedStatement statement = connection.prepareStatement("insert into scan_result (scan_time, result) values (?, ?)");
statement.setDate(1, new Date(System.currentTimeMillis()));
statement.setString(2, "掃描結果");
statement.executeUpdate();
//關閉連接
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//根據掃描結果生成郵件內容
private static String generateEmailContent() {
StringBuilder builder = new StringBuilder();
try {
//連接資料庫
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
//查詢掃描結果
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from scan_result");
//生成郵件內容
builder.append("掃描結果如下:
");
while (resultSet.next()) {
builder.append("" + resultSet.getDate("scan_time") + " : " + resultSet.getString("result") + "
");
}
//關閉連接
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243520.html