it-swarm-vi.tech

Làm cách nào để gửi Tin nhắn SMTP từ Java?

Có thể trùng lặp:
Làm thế nào để bạn gửi email từ một ứng dụng Java bằng Gmail?

Làm cách nào để gửi Tin nhắn SMTP từ Java?

24
Allain Lalonde

Đây là một ví dụ cho 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("[email protected]"));;
        msg.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse("[email protected]", 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", "[email protected]", "<insert password here>");
        t.sendMessage(msg, msg.getAllRecipients());
        System.out.println("Response: " + t.getLastServerResponse());
        t.close();
    }
}

Bây giờ, hãy làm theo cách này chỉ khi bạn muốn giữ mức phụ thuộc dự án của mình ở mức tối thiểu, nếu không tôi có thể khuyến nghị sử dụng các lớp từ Apache

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

Trân trọng

Tov là Jacobsen

35
tovare

Một cách khác là sử dụng aspirin ( https://github.com/masukomi/aspirin ) như thế này:

MailQue.queMail(MimeMessage message)

.. sau khi đã xây dựng mô phỏng của bạn như trên.

Aspirin một 'máy chủ' smtp vì vậy bạn không phải định cấu hình nó. Nhưng lưu ý rằng việc gửi email đến một nhóm người nhận rộng rãi không đơn giản như nó xuất hiện do có nhiều quy tắc lọc thư rác khác nhau nhận máy chủ thư và ứng dụng khách. 

6
brad

Xin vui lòng xem bài này 

Làm cách nào tôi có thể gửi email bằng ứng dụng Java bằng GMail, Yahoo hoặc Hotmail?

Nó là cụ thể cho gmail nhưng bạn có thể thay thế thông tin smtp của bạn.

3
Ryan Lanciaux

Xem API JavaMail và javadocs được liên kết.

2
Mason

Xem hướng dẫn sau tại Thực tiễn Java.

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

1
Jorge Ferreira
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);
}
0
user527619