我有一个问题,那就是当我在NetBeans中通过Gmail发送附件时,程序会正常工作并发送消息,但当我try 从NetBeans运行JAR文件时,程序不会显示打印数字3的对话框. 这意味着问题从这一行开始 MultiPartEmail Email=new MultiPartEmail(); 程序将继续执行,而不会引发异常或打印数字3.
知道该程序使用了几个库,所有这些库都按照它们在JAR文件中应有的方式工作.
我还try 了一个库javax-mail.jar.我遇到了同样的问题,因为程序在NetBeans中工作得很好,但JAR文件不能只发送消息.
以下是我的完整类代码:
package FTPEmail;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
import java.io.IOException;
public class SendAttachment {
public SendAttachment(String attachment, String subject, String msg) throws IOException {
final String sender = "sender123@gmail.com";
final String receiver = "receiver123@gmail.com";
final String password = "abc123abc123abc1";
Tools.Text.dialogErrorNumber("1");
try {
EmailAttachment emailAttachment = new EmailAttachment();
emailAttachment.setPath(attachment);
emailAttachment.setDisposition(EmailAttachment.ATTACHMENT);
emailAttachment.setDescription("Attachment");
Tools.Text.dialogErrorNumber("2");
MultiPartEmail email = new MultiPartEmail();
Tools.Text.dialogErrorNumber("3");
email.setHostName("smtp.gmail.com");
Tools.Text.dialogErrorNumber("4");
email.setSmtpPort(465);
Tools.Text.dialogErrorNumber("5");
email.setAuthenticator(new DefaultAuthenticator(sender, password));
Tools.Text.dialogErrorNumber("6");
email.setSSLOnConnect(true);
Tools.Text.dialogErrorNumber("7");
email.addTo(receiver);
Tools.Text.dialogErrorNumber("8");
email.setFrom(sender);
Tools.Text.dialogErrorNumber("9");
email.setSubject(subject);
Tools.Text.dialogErrorNumber("10");
email.setMsg(msg);
Tools.Text.dialogErrorNumber("11");
// attach the file
email.attach(emailAttachment);
Tools.Text.dialogErrorNumber("12");
// send the email
email.send();
} catch (EmailException e) {
Tools.Text.dialogErrorNumber(e.getMessage());
Tools.Text.dialogErrorNumber("0060");
}
}
}