javamail发邮件

本文提供了一个使用JavaMail API发送邮件的示例代码,并详细展示了如何配置SMTP服务器、设置邮件内容以及处理发送过程中的异常。

以下代码来源互联网

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

/**
 * <p>Title: java mail</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author petehero
 * @version 1.0
 */

public class SendMail
{

    public SendMail()
    {
    }
    public void send(){
        try
        {
            Properties props = new Properties();
            Session sendMailSession;
            Store store;
            Transport transport;
            props.put("mail.smtp.auth","true");
            props.put("mail.smtp.host", "smtp.yourmail.com"); //smtp主机名。
            props.put("mail.smtp.user","username@yourmail.com"); //发送方邮件地址。
            props.put("mail.smtp.password","888888"); //邮件密码。
            PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
            PasswordAuthentication pop = popA.performCheck("username","888888"); //填写用户名及密码
            sendMailSession = Session.getInstance(props, popA);
            Message newMessage = new MimeMessage(sendMailSession);
            newMessage.setFrom(new InternetAddress("username@yourmail.com"));
            newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("receiver@mail.com"));  //接收方邮件地址
            newMessage.setSubject("邮件主题");
            newMessage.setSentDate(new Date());
            String mailContent;
            mailContent="你好!/n/n";
            mailContent+="/t邮件正文/n/n";
            mailContent+=new Date().toLocaleString();
            newMessage.setText(mailContent); //邮件正文
            transport = sendMailSession.getTransport("smtp");
            transport.send(newMessage);
        }
        catch (MessagingException ex)
        {
            ex.printStackTrace();
        }
    }
    public static void main(String[] args)
    {
        SendMail sml = new SendMail();
        sml.send();
    }

    public class PopupAuthenticator extends Authenticator{
        String username=null;
        String password=null;
        public PopupAuthenticator(){}
        public PasswordAuthentication performCheck(String user,String pass){
            username = user;
            password = pass;
            return getPasswordAuthentication();
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }

    }
}

 其中曾经报错:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.sina.com.cn, port: 25;
  nested exception is:
 java.net.SocketException: Software caused connection abort: connect
 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
 at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:311)
 at javax.mail.Service.connect(Service.java:255)
 at javax.mail.Service.connect(Service.java:134)
 at javax.mail.Service.connect(Service.java:86)
 at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
 at javax.mail.Transport.send0(Transport.java:150)
 at javax.mail.Transport.send(Transport.java:80)
 at com.zq.email.Javamail.send(Javamail.java:45)
 at com.zq.email.Javamail.main(Javamail.java:55)

后来发现原来是virusscan组织了25端口。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值