Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javax.mail发送邮件示例_Java_Swing_Email - Fatal编程技术网

使用javax.mail发送邮件示例

使用javax.mail发送邮件示例,java,swing,email,Java,Swing,Email,我下载了以下示例: boolean isSent = true; try { Properties properties = new Properties(); properties.setProperty("mail.smtp.submitter", txtfrom.getText()); properties.setProperty("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.host"

我下载了以下示例:

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
当我直接执行jar文件时,它工作得非常好。但在使用Netbeans 7.0运行项目时,它抛出了一个错误:

error: could not connect to SMTP host:smtp.gmail.com,port:465
    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
可能是什么问题

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
这是我在按钮操作上的代码 私有void sendbuttonationperformed(java.awt.event.ActionEvent evt){

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     

请考虑对代码进行以下更改,

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
//使用的“smtps”:

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     

//465端口用于身份验证,它通过gmail解决,yahoo主机
transport.connect(“smtp.gmail.com”,465,“myid”,“password”);

JavaMail是发送电子邮件的传统答案。
    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
请注意如何设置
端口
和其他配置

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
下面是一个例子

    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}     
package example.java.mail;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class SendFromGmail {
    public static void main(String args[]){
        try{
            String host = "smtp.gmail.com";
            String from = "example@gmail.com";
            String pass = "mypassword123";
            Properties props = System.getProperties();
            props.put("mail.smtp.starttls.enable", "true");
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.user", from);
            props.put("mail.smtp.password", pass);
            props.put("mail.smtp.port", "587");
            props.put("mail.smtp.auth", "true");

            String[] to = {"example@gmail.com"};

            Session session = Session.getDefaultInstance(props, null);
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            InternetAddress[] toAddress = new InternetAddress[to.length];

            // To get the array of addresses
            for( int i=0; i < to.length; i++ ) { // changed from a while loop
                toAddress[i] = new InternetAddress(to[i]);
            }
            System.out.println(Message.RecipientType.TO);

            for( int i=0; i < toAddress.length; i++) { // changed from a while loop
                message.addRecipient(Message.RecipientType.TO, toAddress[i]);
            }
            message.setSubject("sending in a group");
            message.setText("Welcome to JavaMail");
            Transport transport = session.getTransport("smtp");
            transport.connect(host, from, pass);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        }
        catch(Exception e){
            e.getMessage();
        }
    }
}
package example.java.mail;
导入javax.mail.*;
导入javax.mail.internet.*;
导入java.util.*;
公共类从Gmail发送{
公共静态void main(字符串参数[]){
试一试{
String host=“smtp.gmail.com”;
字符串from=”example@gmail.com";
字符串pass=“mypassword123”;
Properties props=System.getProperties();
props.put(“mail.smtp.starttls.enable”、“true”);
props.put(“mail.smtp.host”,host);
props.put(“mail.smtp.user”,from);
props.put(“mail.smtp.password”,pass);
props.put(“mail.smtp.port”,“587”);
props.put(“mail.smtp.auth”,“true”);
字符串[]到={”example@gmail.com"};
Session Session=Session.getDefaultInstance(props,null);
MimeMessage message=新MimeMessage(会话);
message.setFrom(新的InternetAddress(from));
InternetAddress[]toAddress=新的InternetAddress[to.length];
//获取地址数组的步骤
对于(int i=0;i

查看更多示例。

我尝试更改端口号…看一看可能会对您有所帮助:我尝试更改端口号,但抛出了相同的错误。
    boolean isSent = true;

    try {

    Properties properties = new Properties();
properties.setProperty("mail.smtp.submitter", txtfrom.getText());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", txthostName.getText());    
    properties.put("mail.smtp.user", txtfrom.getText());
    properties.put("mail.smtp.port", txtPort.getText());
    properties.put("mail.smtp.socketFactory.port", txtPort.getText());
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");


    Authenticator mailAuthenticator = new MailAuthenticator();
Session mailSession = Session.getDefaultInstance(properties,mailAuthenticator);
    Message message = new MimeMessage(mailSession);

    Transport transport = mailSession.getTransport("smtps");
    transport.connect("smtp.gmail.com",465,"abc@gmail.com","12345");

    InternetAddress fromAddress = new InternetAddress(txtfrom.getText());
    InternetAddress toAddress = new InternetAddress(txtto.getText());

    message.setFrom(fromAddress);
    message.setRecipient(RecipientType.TO, toAddress);

    message.setSubject(txtsubject.getText());
    message.setText(txtcontent.getText());

    Transport.send(message);

    } catch (Exception e) {
        lblInfo.setText("ERROR:" + e.getMessage());            
        isSent = false;
    }

    if(isSent == true) {
        sendButton.setEnabled(false);
        lblInfo.setText("Your e-mail has been sent."); 
    } 

}