Rumah > Java > javaTutorial > teks badan

Hantar e-mel menggunakan Java (API Javamail atau Mel Java Mudah atau SuprSend Java SDK)

王林
Lepaskan: 2024-08-05 16:52:40
asal
648 orang telah melayarinya

Kaedah 1: Menggunakan API JavaMail untuk Pemberitahuan E-mel

Gambaran keseluruhan:

API JavaMail ialah rangka kerja yang teguh, bebas platform dan bebas protokol yang direka untuk menyokong aplikasi klien Java dalam melaksanakan fungsi e-mel dan pemesejan yang komprehensif. API ini menawarkan antara muka generik dengan kelas abstrak yang mewakili pelbagai objek yang dicipta dalam sistem e-mel transaksi. Ia amat berguna untuk aplikasi peringkat perusahaan di mana kebolehpercayaan dan kefungsian yang meluas adalah penting.

Kelebihan:

  1. Berstruktur Baik dan Digunapakai Secara meluas:

    • API JavaMail terkenal dengan strukturnya yang kukuh dan penggunaan yang meluas, terutamanya dalam persekitaran perusahaan.
  2. Fungsi Serbaguna:

    • Ia menyediakan set fungsi yang luas, termasuk membaca, mengarang dan menghantar e-mel.
  3. Integrasi Programatik:

    • Memudahkan penyepaduan dengan program lain, menjadikannya lebih mudah untuk menghantar pengesahan dan mesej lain secara pengaturcaraan.

Keburukan:

  1. Masa Kompilasi Lanjutan:

    • Pembangun mungkin menghadapi masa penyusunan kod yang lebih lama disebabkan kerumitan API.
  2. Penggunaan Memori:

    • Menggunakan JavaMail API boleh membawa kepada penggunaan ruang timbunan Java yang ketara.

Langkah-langkah Pelaksanaan:

Langkah 1: Memasang JavaMail API

  • Sertakan fail JAR (mail.jar dan activation.jar) dalam CLASSPATH.
  • Konfigurasikan pelayan SMTP (cth., Pepipost) untuk penghantaran e-mel.

Langkah 2: Menyediakan Sesi Mel

  • Buat objek sesi dengan maklumat hos menggunakan javax.mail.Session.
Properties properties = new Properties(); 
Session session = Session.getDefaultInstance(properties, null);
Salin selepas log masuk
  • Sebagai alternatif:
Properties properties = new Properties(); 
Session session = Session.getInstance(properties, null);
Salin selepas log masuk
  • Pengesahan rangkaian:
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
  protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("sender@gmail.com", "password");
  }
});
Salin selepas log masuk

Langkah 3: Mengarang E-mel

  • Gunakan subkelas javax.mail.internet.MimeMessage untuk menetapkan pengirim, penerima, subjek dan isi mesej.
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("This is the email subject");
message.setText("This is the email body");
Salin selepas log masuk

Langkah 4: Menambah Lampiran

  • Untuk memasukkan lampiran, buat objek Berbilang Bahagian dan tambah BodyPart untuk setiap lampiran.
Multipart multipart = new MimeMultipart();

BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("This is the email body");
multipart.addBodyPart(messageBodyPart);

messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("path/to/attachment.txt");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("attachment.txt");
multipart.addBodyPart(messageBodyPart);

message.setContent(multipart);
Salin selepas log masuk

Langkah 5: Menghantar E-mel

  • Gunakan kelas javax.mail.Transport untuk menghantar e-mel.
Transport.send(message);
Salin selepas log masuk

Contoh Kod Lengkap:

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendMail {
    public static void main(String[] args) {
      String to = "receiver@gmail.com";
      String from = "sender@gmail.com";
      String host = "smtp.gmail.com";

      Properties properties = System.getProperties();
      properties.put("mail.smtp.host", host);
      properties.put("mail.smtp.port", "465");
      properties.put("mail.smtp.ssl.enable", "true");
      properties.put("mail.smtp.auth", "true");

      Session session = Session.getInstance(properties, new javax.mail.Authenticator(){
        protected PasswordAuthentication getPasswordAuthentication() {
          return new PasswordAuthentication("sender@gmail.com", "password");
        }
      });

      try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        message.setSubject("Your email subject goes here");

        Multipart multipart = new MimeMultipart();
        BodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart.setText("You have a new message");
        multipart.addBodyPart(messageBodyPart);

        messageBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource("path/to/attachment.txt");
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName("attachment.txt");
        multipart.addBodyPart(messageBodyPart);

        message.setContent(multipart);

        Transport.send(message);
      } catch (MessagingException mex) {
        mex.printStackTrace();
      }
   }
}
Salin selepas log masuk

Kaedah 2: Menggunakan Mel Java Mudah untuk Pemberitahuan E-mel

Gambaran keseluruhan:

Simple Java Mail ialah perpustakaan mel mesra pengguna yang direka untuk memudahkan proses penghantaran e-mel SMTP dalam Java. Ia berfungsi sebagai pembalut di sekeliling API JavaMail, memperkemas proses penghantaran e-mel dengan mengurangkan kerumitan API asas.

Kelebihan:

  1. Teguh dan Ringan:

    • Simple Java Mail adalah teguh sambil mengekalkan jejak ringan 134kB.
  2. Pematuhan RFC:

    • Ia mematuhi semua RFC yang berkaitan, memastikan keserasian dengan pelbagai pelanggan e-mel.
  3. Sokongan Proksi SOCKS yang Disahkan:

    • Menyokong penghantaran e-mel melalui proksi SOCKS yang disahkan.
  4. Ciri Terperinci:

    • Menawarkan sokongan untuk kandungan HTML, imej dan lampiran serta membenarkan penghantaran e-mel kepada berbilang penerima serentak.

Keburukan:

  1. Sokongan Komuniti Terhad:
    • Sokongan komuniti untuk Simple Java Mail adalah lebih kecil berbanding JavaMail API.

Langkah-langkah Pelaksanaan:

Langkah 1: Mencipta Objek E-mel dengan HTML dan Lampiran

Email email = EmailBuilder.startingBlank()
    .from("From", "from@example.com")
    .to("1st Receiver", "rec1@example.com")
    .to("2nd Receiver", "rec2@example.com")
    .withSubject("Enhanced Email with HTML and Attachments")
    .withHTMLText("<html><body><h1>Hello!</h1><p>This is an enhanced email with HTML content.</p></body></html>")
    .withAttachment("path/to/attachment.txt")
    .buildEmail();
Salin selepas log masuk

Langkah 2: Mencipta Objek Mailer menggunakan MailerBuilder

Mailer mailer = MailerBuilder
    .withSMTPServer("smtp.mailtrap.io", 2525, "username", "password")
    .withTransportStrategy(TransportStrategy.SMTPS)
    .buildMailer();
Salin selepas log masuk

Langkah 3: Menghantar E-mel Dipertingkat

mailer.sendMail(email);
Salin selepas log masuk

Contoh Kod Lengkap:

import org.simplejavamail.api.email.Email;
import org.simplejavamail.email.EmailBuilder;
import org.simplejavamail.mailer.Mailer;
import org.simplejavamail.mailer.MailerBuilder;
import org.simplejavamail.api.mailer.config.TransportStrategy;

public class SendEnhancedMail {
    public static void main(String[] args) {
        Email email = EmailBuilder.startingBlank()
            .from("From", "from@example.com")
            .to("1st Receiver", "case1@example.com")
            .to("2nd Receiver", "case2@example.com")
            .withSubject("Enhanced Email with HTML and Attachments")
            .withHTMLText("<html><body><h1>Hello!</h1><p>This is an enhanced email with HTML content.</p></body></html>")
            .withAttachment("path/to/attachment.txt")
            .buildEmail();

        Mailer mailer = MailerBuilder
            .withSMTPServer("smtp.mailtrap.io", 2525, "username", "password")
            .withTransportStrategy(TransportStrategy.SMTPS)
            .buildMailer();

        mailer.sendMail(email);
    }
}
Salin selepas log masuk

Kaedah 3: Menggunakan SuprSend untuk Pemberitahuan Berbilang Saluran dengan JAVA SDK

Gambaran keseluruhan:

SuprSend menawarkan infrastruktur pemberitahuan berbilang saluran pihak ketiga yang komprehensif yang menyokong penghantaran pemberitahuan merentas pelbagai saluran seperti e-mel, SMS dan pemberitahuan tolak melalui API bersatu. Dengan memanfaatkan SuprSend, pembangun boleh mengurus aliran kerja pemberitahuan yang kompleks dengan lancar.

Ciri & Faedah Utama:

  1. Pilihan Penyepaduan Luas:

    • Bersepadu dengan lancar dengan lebih 50 Pembekal Perkhidmatan Komunikasi (CSP) dan menyokong berbilang saluran termasuk Mixpanel, Segment, Twilio, Mailchimp, Slack, Teams, SNS, Vonage, Whatsapp dan banyak lagi.
  2. Tiada Ketergantungan Teknologi:

    • Manages the entire notification lifecycle without heavy reliance on the engineering team. Integrate the JAVA SDK once, and the product team can handle the rest.
  3. Intelligent Routing:

    • Implements intelligent cross-channel flows across providers without requiring technical dependencies.
  4. In-App SDK:

    • Provides a developer-ready in-app layer for both web and mobile applications.
  5. Granular Template Management:

    • Features an intuitive drag & drop editor for designing templates, offering superior control over content.
  6. Powerful Workspace:

    • Manages multiple projects with distinct integrations, workflows, and templates within each workspace.
  7. Unified Analytics:

    • Provides a unified view of cross-channel analytics, enabling data-driven decision-making.
  8. Smart Automation:

    • Automates synchronization, refreshing, and notification triggers to streamline operations.
  9. Scalability:

    • Automates scalability, ensuring a hassle-free experience.

Cons:

  1. Cost Considerations:
    • Managing multiple notification channels may incur costs.
  2. *Monthly Notification Limit:*
    • Though SuprSend provides 10k notifications free every month, which resets every month, you can also buy credits.

Limits:**

  • There may be restrictions on the number of notifications per month.

Implementation Steps:

Step 1: Integrating the JAVA SDK

  1. Install the SuprSend JAVA SDK:
    • Add the SDK to your JAVA project via Maven or Gradle.

Step 2: Configuring the API Key and Workspace Secret

  1. Set Up Configuration:
    • Obtain the API key and workspace secret from your SuprSend account and configure them in your JAVA project.

Step 3: Creating and Sending Notifications

  1. Send Notifications via JAVA SDK:
    • Use the SDK to send notifications, specifying the required channel (email, SMS, push, etc.) and the content.
import com.suprsend.Notification;
import com.suprsend.NotificationBuilder;
import com.suprsend.SuprSendClient;

public class SendNotification {
    public static void main(String[] args) {
        // Initialize the SuprSendClient with API key and Workspace Secret
        SuprSendClient client = new SuprSendClient("your_api_key", "your_workspace_secret");

        // Build the notification
        Notification notification = NotificationBuilder.startingBlank()
            .withRecipientEmail("recipient@example.com")
            .withRecipientSMS("recipient_phone_number")
            .withSubject("Notification Subject")
            .withHTMLBody("<html><body><h1>Hello!</h1><p>This is a multichannel notification.</p></body></html>")
            .build();

        // Send the notification
        client.sendNotification(notification);
    }
}
Salin selepas log masuk

Complete Code Example with JAVA SDK:

import com.suprsend.Notification;
import com.suprsend.NotificationBuilder;
import com.suprsend.SuprSendClient;

public class SuprSendExample {
    public static void main(String[] args) {
        // Initialize the SuprSendClient with API key and Workspace Secret
        SuprSendClient client = new SuprSendClient("your_api_key", "your_workspace_secret");

        // Create the notification
        Notification notification = NotificationBuilder.startingBlank()
            .withRecipientEmail("receiver@example.com")
            .withSubject("Subject of the Notification")
            .withHTMLBody("<html><body><h1>Hello!</h1><p>This is a notification from SuprSend.</p></body></html>")
            .withAttachment("path/to/attachment.txt")
            .build();

        // Send the notification
        client.sendNotification(notification);
    }
}
Salin selepas log masuk

These methods offer a comprehensive guide to sending email notifications using Java, with varying levels of complexity and integration capabilities to suit different needs and scenarios.


You may want to check out other SuprSend SDKs too. Consider giving us a star after usage. It's free and open.

Send emails using Java (Javamail API or Simple Java Mail or SuprSend Java SDK) suprsend / suprsend-go

SuprSend SDK for go

suprsend-go

SuprSend Go SDK

Installation

go get github.com/suprsend/suprsend-go
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

Usage

Initialize the SuprSend SDK

import (
    "log"

    suprsend "github.com/suprsend/suprsend-go"
)

func main() {
    opts := []suprsend.ClientOption{
        // suprsend.WithDebug(true),
    }
    suprClient, err := suprsend.NewClient("__api_key__", "__api_secret__", opts...)
    if err != nil {
        log.Println(err)
    }
}
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

Trigger Workflow

package main
import (
    "log"

    suprsend "github.com/suprsend/suprsend-go"
)

func main() {
    // Instantiate Client
    suprClient, err := suprsend.NewClient("__api_key__", "__api_secret__")
    if err != nil {
        log.Println(err)
        return
    }
    // Create workflow body
    wfBody := map[string]interface{}{
        "name":                  "Workflow Name",
        "template":              "template slug",
        "notification_category": "category",
        // "delay":                 "15m", // Chek duration format in documentation
        "users": []map[string]interface{}{
            {
                "distinct_id": "0f988f74-6982-41c5-8752-facb6911fb08",
                
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode
View on GitHub

Send emails using Java (Javamail API or Simple Java Mail or SuprSend Java SDK) suprsend / suprsend-py-sdk

SuprSend SDK for python3

suprsend-py-sdk

This package can be included in a python3 project to easily integrate with SuprSend platform.

We're working towards creating SDK in other languages as well.

SuprSend SDKs available in following languages

  • python3 >= 3.7 (suprsend-py-sdk)
  • node (suprsend-node-sdk)
  • java (suprsend-java-sdk)

Installation

suprsend-py-sdk is available on PyPI. You can install using pip.

pip install suprsend-py-sdk
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

This SDK depends on a system package called libmagic. You can install it as follows:

<span class="pl-c"># On debian based systems</span>
sudo apt install libmagic

<span class="pl-c"># If you are using macOS</span>
brew install libmagic
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

Usage

Initialize the SuprSend SDK

from suprsend import Suprsend
# Initialize SDK
supr_client = Suprsend("workspace_key", "workspace_secret")
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

Following example shows a sample request for triggering a workflow. It triggers a notification to a user with id: distinct_id, email: user@example.com & androidpush(fcm-token): __android_push_fcm_token__ using template purchase-made and notification_category system

from suprsend import Workflow
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode
View on GitHub

Send emails using Java (Javamail API or Simple Java Mail or SuprSend Java SDK) suprsend / suprsend-node-sdk

Official SuprSend SDK for Node.js

suprsend-node-sdk

This package can be included in a node project to easily integrate with SuprSend platform.

Installation

npm install @suprsend/node-sdk@latest
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

Initialization

const { Suprsend } = require("@suprsend/node-sdk");

const supr_client = new Suprsend("workspace_key", "workspace_secret");
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

Trigger workflow from API

It is a unified API to trigger workflow and doesn't require user creation before hand. If you are using our frontend SDK's to configure notifications and passing events and user properties from third-party data platforms like Segment, then event-based trigger would be a better choice.

const { Suprsend, WorkflowTriggerRequest } = require("@suprsend/node-sdk");
const supr_client = new Suprsend("workspace_key", "workspace_secret");

// workflow payload
const body = {
  workflow: "_workflow_slug_",
  actor: {
    distinct_id: "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08",
    name: "actor_1",
  },
  recipients: [
    {
      distinct_id: "0gxxx9f14-xxxx-23c5-1902-xxxcb6912ab09",
      $email: ["abc@example.com"
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode
View on GitHub

Send emails using Java (Javamail API or Simple Java Mail or SuprSend Java SDK) suprsend / suprsend-react-inbox

SuprSend SDK for integrating inbox functionality in React applications

@suprsend/react-inbox

Integrating SuprSend Inbox channel in React websites can be done in two ways:

  • SuprSendInbox component which comes with UI and customizing props.
  • SuprSendProvider headless component and hooks, incase you want to totally take control of UI. (example: Full page notifications).

Detailed documentation can be found here: https://docs.suprsend.com/docs/inbox-react

Installation

You can install SuprSend inbox SDK using npm/yarn

npm install @suprsend/react-inbox
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode

SuprSendInbox Integration

After installing, Import the component in your code and use it as given below. Replace the variables with actual values.

import SuprSendInbox from '@suprsend/react-inbox'
import 'react-toastify/dist/ReactToastify.css' // needed for toast notifications, can be ignored if hideToast=true

// add to your react component;
<SuprSendInbox
  workspaceKey='<workspace_key>'
  subscriberId='<subscriber_id>'
  distinctId='<distinct_id>'
/>
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode
interface ISuprSendInbox {
  workspaceKey: string
  distinctId: string | null
  subscriberId: string | null
  tenantId?: string
  stores?: IStore[]
  pageSize?: number
  pagination?: boolean
Salin selepas log masuk
Enter fullscreen mode Exit fullscreen mode
View on GitHub

Atas ialah kandungan terperinci Hantar e-mel menggunakan Java (API Javamail atau Mel Java Mudah atau SuprSend Java SDK). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!