-1
스윙을 사용하여 Java에서 전자 메일을 보내려고합니다. 그러나 수정 방법을 찾지 못했지만 오류가 발생합니다. 코드가 있습니다 (어딘가에서 가져 왔고 몇 가지 필드를 제거했습니다).전자 메일 보내기 기능에서 오류가 발생했습니다
import sun.plugin2.message.transport.Transport;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Properties;
class SendEmailClient extends JFrame {
....
private SendEmailClient() {
InitializeUI();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SendEmailClient client = new SendEmailClient();
client.setVisible(true);
}
});
}
private void InitializeUI() {
setTitle("Send E-mail Client");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(new Dimension(400, 280));
// Header Panel
}
private class SendEmailActionListener implements ActionListener {
SendEmailActionListener() {
}
public void actionPerformed(ActionEvent e) {
Properties props = new Properties();
props.put("mail.smtp.host", mailSmtpHostComboBox.getSelectedItem());
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Session session = Session.getDefaultInstance(props);
try {
InternetAddress fromAddress = new InternetAddress(fromField.getText());
InternetAddress toAddress = new InternetAddress(toField.getText());
javax.mail.Message message = new MimeMessage(session);
message.setFrom(fromAddress);
message.setRecipient(javax.mail.Message.RecipientType.TO, toAddress);
message.setSubject(subjectField.getText());
message.setText(contentTextArea.getText());
Transport.send(message, usernameField.getText(),
new String(passwordField.getPassword()));
} catch (MessagingException ex) {
ex.printStackTrace();
}
}
}
}
과 받는다는 의존성 (그들 중 일부는 필요하지 않을 수 있습니다) :
<dependency>
<groupId>org.jdesktop.bsaf</groupId>
<artifactId>bsaf</artifactId>
<version>1.9RC5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
그리고 보내기 기능에 오류가 :
java: cannot find symbol
symbol: method send(javax.mail.Message,java.lang.String,java.lang.String)
location: interface sun.plugin2.message.transport.Transport
pom에 몇 가지 종속성을 추가하려고 시도하고 있지만 잘못된 결정으로 보일 수 있지만 문제를 해결할 수는 있습니다. 누군가 알고 있습니까?
스윙은 이메일을 보내는 것과 관련이 없습니다. 먼저 전자 메일 속성에 대한 데이터를 하드 코딩하여 코드를 작동 시키십시오. 그런 다음이 작업이 완료되면 Swing을 사용하여 메시지와 전자 메일 주소에 대한 사용자 입력을 얻음으로써 코드를보다 동적으로 만듭니다. – camickr