SMTP経由で電子メールを送信するためのシンプルなjavamailクラスがあります。私は1つのアドレスからメールを送信する限り動作します。私は別のアドレスを使用してみた場合、それはいくつかの理由で、この例外が発生します:JavaMail - 複数の送信者
com.sun.mail.smtp.SMTPSendFailedException: 550 5.1.0 Use your own address, please.
はここに私のクラスです:
public class EmailSender { private static final String HOST = "xxxx.xxxxxx.xx"; private static final String PORT = "xx"; public static boolean sendMail(String from, String to, String pass, String subject, String text){ Properties properties = new Properties(); properties.setProperty("mail.smtp.host", HOST); properties.setProperty("mail.smtp.port", PORT); properties.setProperty("mail.smtp.auth", "true"); properties.setProperty("mail.user", from); properties.setProperty("mail.password", pass); Session session = Session.getDefaultInstance(properties, new CustomAuthenticator(from, pass)); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); message.setText(text); Transport.send(message); return true; }catch (MessagingException e) { e.printStackTrace(); return false; } } }
あなたが迷っている場合は、CustomAuthenticatorクラスは次のようになります。
public class CustomAuthenticator extends Authenticator{ private String user; private String pw; public CustomAuthenticator (String username, String password){ super(); this.user = username; this.pw = password; } public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(user, pw); } }
ログアウトする方法はありますか? –
Transport.sendを使用すると、新しい接続を作成し、ログインし、メッセージを送信し、接続を閉じてログアウトします。 –