ホームページ  >  記事  >  Java  >  Java で電子メールの添付ファイルを送信する

Java で電子メールの添付ファイルを送信する

PHPz
PHPzオリジナル
2024-08-30 15:54:11539ブラウズ

次の記事では、Java での電子メール添付ファイルの送信の概要を説明します。電子メールを電子メール サービス プロバイダーの資格情報に接続する機能により、電子メールの添付ファイルを送信できるようになります。これを完了するには、電子メール ホスト サービスを使用する必要があります。その後、電子メール ホスト、ポート、ユーザー名、パスワードを入力してセッション オブジェクトを作成します。電子メール ホスト サービスは、これらすべての仕様をコードで追加提供します。これにより、任意の偽の SMTP テスト サーバーを利用でき、JavaMail の構成と認証を管理するために、セッション オブジェクトが接続ファクトリーとして機能します。

Java で電子メールの添付ファイルを送信する

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

重要なポイント

  • JavaMail API は、添付ファイル付きの電子メールを送信するための BodyPart、MimeBodyPart などのさまざまな便利なクラスを提供します。
  • この例を読んで理解する前に、JavaMail API の電子メール送信段階を学習してください。
  • JavaMail API を使用して電子メールを送信するには、mail.jar と activity.jar という 2 つの jar ファイルをロードする必要があります。
  • セッションを取得し、メッセージのデフォルトの MimeMessage オブジェクトに From、To、および Subject を設定します。
  • MimeMultipart オブジェクトの作成。このマルチパート オブジェクトには、実際のメッセージが配置された上記の messageBodyPart が含まれるはずです。
  • Transport オブジェクトを使用して、メッセージを送信します。

Java での電子メール添付ファイルの送信の概要

JavaMail API は、添付ファイル付きの電子メールを送信するための BodyPart や MimeBodyPart などのさまざまな便利なクラスを提供します。 JavaMail API の電子メール送信段階を理解し、JavaMail API を使用して電子メールを送信するには、次の 2 つの jar ファイルをロードする必要があります。

  • Mail.jar
  • アクティベーション.jar

Session オブジェクトができたので、MimeMessage オブジェクトと MimeBodyPart オブジェクトを構築しましょう。

電子メール メッセージを生成するには、次のオブジェクトを使用します:

  • セッション オブジェクトの作成メッセージを取得します。
  • MimeBodyPart オブジェクトを作成し、その中にメッセージ テキストを指定します。別の MimeBodyPart オブジェクトを作成し、それに DataHandler オブジェクトを追加します。 Multipart オブジェクトを作成し、その中に MimeBodyPart オブジェクトを含めます。
  • マルチパート オブジェクトをメッセージ オブジェクトに設定してメッセージを送信します。

さらに、Java 電子メール プログラムの手順は次のとおりです。

  • javax.mail.Session.型のオブジェクトの作成
  • Javax.mail.internet の開発
  • MimeMessage オブジェクト。このオブジェクトには、受信者の電子メール アドレス、電子メールの件名、返信先電子メール、電子メール本文、添付ファイルなどのいくつかの属性を設定する必要があります。
  • javax.mail.Transport を使用して電子メール メッセージを送信します。

Java で電子メールの添付ファイルを送信するには?

電子メール サービス プロバイダーの資格情報を構成する必要があります。次に、電子メールのホスト、ポート、ユーザー名、およびパスワードを入力して、Session オブジェクトを構築します。電子メール ホスト サービスは、これらすべての機能を提供します。コードには、偽の SMTP テスト サーバーを利用できます。 JavaMail の構成と認証を管理するために、セッション オブジェクトは接続ファクトリーとして機能します。 Session オブジェクトができたので、MimeMessage オブジェクトと MimeBodyPart オブジェクトを構築します。電子メール メッセージを生成するには、次のオブジェクトを使用します:

コード:

Message testmsg = new MimeMessage(sess);
testmsg.setFrom(new InternetAddress(fromaddr));
testmsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
testmsg.setSubject("Welcome to our Test Site");

上記のコードは、MimeMessage セッション オブジェクトを使用してメッセージ サービスを作成するのに役立ちます。これにより、セッション(sess)をメッセージキューのパラメータとして渡すことができます。インスタンスを使用すると、From アドレスまたは送信者リストを渡すために使用される setFrom() というメソッドを呼び出すことができます。同じインスタンスで、Message クラスと同様にパラメータを渡して setRecipients() と呼ばれる他のメソッドを呼び出し、To メール受信者を呼び出す RecipientType と呼ばれる追加メソッドを呼び出します。さらに、宛先アドレス受信者を渡すための parse(to) と呼ばれるデフォルト メソッドで InternetAddress を呼び出すことができます。 setSubject() は、Message クラスのインスタンスに文字列値を渡します。上記の抜粋では、from、to、subject などの必要な情報を含む MimeMessage オブジェクトが生成されています。次に、電子メール本文を含む MimeBodyPart オブジェクトがあります。さらに、メール サービスに添付ファイルを追加するには、別の MimeBodyPart を構築する必要があります。

コード:

MimeBodyPart mpart = new MimeBodyPart();
mpart.attachFile(new File("path/to/file"));

The MimeBodyPart is the mail class body that created the instance and the same will be called for the method called attachFile() with additional parameters like to pass the new File object creation with file path parameters. TLS authentication is possible but different in several ways. As we can see, we are calling additional EmailUtil class methods to deliver email attachments and images even though we haven’t yet defined them.

Example of Sending Email Attachments in Java

Given below is the example mentioned:

Code:

package TestNG;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class NewTest{
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
Session sess = Session.<em><i>getDefaultInstance</i></em>(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]","xodbizaoiqijifre");
}
});
try{
MimeMessage msg = new MimeMessage(sess);
msg.setFrom(new InternetAddress("[email protected]"));
msg.addRecipient(Message.RecipientType.<em><i>TO</i></em>,new InternetAddress("[email protected]"));
msg.setSubject("Welcome To My Domain");
BodyPart mbody = new MimeBodyPart();
mbody.setText("Your Message body is sent");
MimeBodyPart mbody1 = new MimeBodyPart();
String filename = "D://articles1.txt";
DataSource source = new FileDataSource(filename);
mbody1.setDataHandler(new DataHandler(source));
mbody1.setFileName(filename);
Multipart mpart = new MimeMultipart();
mpart.addBodyPart(mbody);
mpart.addBodyPart(mbody1);
msg.setContent(mpart );
Transport.<em><i>send</i></em>(msg);
System.<em><i>out</i></em>.println("Your email is sent successfully");
}catch (MessagingException ex) {ex.printStackTrace();}
}
}

Output:

Java で電子メールの添付ファイルを送信する

  • In the above example, we first set the properties class and call the required mail.smtp.host parameters.
  • By using the session class instance, we can call and validate the user details like username and password.
  • Default session class creation like MimeMessage, MimeBodyPart, and Multipart to connect the user communications.
  • Using try and catch block to get the exception if the condition is not satisfied.
  • The transport protocol and its method for sending the message along with the attachment.

FAQs

Given below are the FAQs mentioned:

Q1. Define sending email with an attachment.

Answer: When enabling the functionality of sending email attachments, the email host, port, username, and password are entered after configuring the email with the email service provider’s credentials.

Q2. What is MimeMultipart in Java?

Answer: The abstract Multipart class is implemented by the MimeMultipart class, which employs MIME standards for multipart data.

Q3. What are the steps to follow sending email with an attachment?

Answer: Get the compose message for the session object.

Create a MimeBodyPart object and specify the message text in it. Create another MimeBodyPart object and add a DataHandler object to it. Create a Multipart object and include MimeBodyPart objects in it.

Send a message by setting the multipart object to the message object.

Conclusion

To obtain the session object, which contains all of the host’s data, including hostname, username, and password. Write the message, the message along with the attachment, and send it. The JavaMail API provides a platform- and protocol-neutral foundation for building mail and messaging applications. The JavaMail API makes a number of abstract classes defining the components of a mail system available.

以上がJava で電子メールの添付ファイルを送信するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。