سؤال

التكرار المحتمل:
كيف ترسل بريدًا إلكترونيًا من تطبيق Java باستخدام Gmail؟

كيف أرسل رسالة SMTP من جافا؟

هل كانت مفيدة؟

المحلول

فيما يلي مثال لـ Gmail smtp:

import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;

import javax.mail.*;

import javax.mail.internet.*;

import com.sun.mail.smtp.*;


public class Distribution {

    public static void main(String args[]) throws Exception {
        Properties props = System.getProperties();
        props.put("mail.smtps.host","smtp.gmail.com");
        props.put("mail.smtps.auth","true");
        Session session = Session.getInstance(props, null);
        Message msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress("mail@tovare.com"));;
        msg.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse("tov.are.jacobsen@iss.no", false));
        msg.setSubject("Heisann "+System.currentTimeMillis());
        msg.setText("Med vennlig hilsennTov Are Jacobsen");
        msg.setHeader("X-Mailer", "Tov Are's program");
        msg.setSentDate(new Date());
        SMTPTransport t =
            (SMTPTransport)session.getTransport("smtps");
        t.connect("smtp.gmail.com", "admin@tovare.com", "<insert password here>");
        t.sendMessage(msg, msg.getAllRecipients());
        System.out.println("Response: " + t.getLastServerResponse());
        t.close();
    }
}

الآن، قم بذلك بهذه الطريقة فقط إذا كنت ترغب في تقليل تبعيات مشروعك إلى الحد الأدنى، وإلا يمكنني أن أوصي بشدة باستخدام فئات من Apache

http://commons.Apache.org/email/

يعتبر

توف آر جاكوبسن

نصائح أخرى

هناك طريقة أخرى وهي استخدام الأسبرين (https://github.com/masukomi/aspirin) مثله:

MailQue.queMail(MimeMessage message)

.. بعد إنشاء mimemessage الخاص بك على النحو الوارد أعلاه.

أسبرين يكون "خادم" smtp حتى لا تضطر إلى تكوينه.ولكن لاحظ أن إرسال البريد الإلكتروني إلى مجموعة واسعة من المستلمين ليس بالبساطة التي يبدو عليها بسبب العديد من قواعد تصفية البريد العشوائي المختلفة التي يتم تطبيقها على خوادم البريد وتطبيقات العملاء.

يرجى الاطلاع على هذا المنصب

كيف يمكنني إرسال بريد إلكتروني عبر تطبيق Java باستخدام GMail أو Yahoo أو Hotmail؟

إنه خاص بـ gmail ولكن يمكنك استبدال بيانات اعتماد SMTP الخاصة بك.

انظر جافا ميل API وjavadocs المرتبطة بها.

راجع البرنامج التعليمي التالي في ممارسات Java.

http://www.javapractices.com/topic/TopicAction.do?Id=144

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

public void postMail(String recipients[], String subject,
    String message , String from) throws MessagingException {

    //Set the host smtp address
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.jcom.net");

    // create some properties and get the default Session
    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(false);

    // create a message
    Message msg = new MimeMessage(session);

    // set the from and to address
    InternetAddress addressFrom = new InternetAddress(from);
    msg.setFrom(addressFrom);

    InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
    for (int i = 0; i < recipients.length; i++) {
        addressTo[i] = new InternetAddress(recipients[i]);
    }
    msg.setRecipients(Message.RecipientType.TO, addressTo);

    // Optional : You can also set your custom headers in the Email if you Want
    msg.addHeader("MyHeaderName", "myHeaderValue");

    // Setting the Subject and Content Type
    msg.setSubject(subject);
    msg.setContent(message, "text/plain");
    Transport.send(msg);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top