loki3328 2011-11-25 13:42
浏览 4157
已采纳

JAVAEMAIL 无法发送QQ企业邮箱

public static void main(String args[]){
sendEmail("XXX@qq.com", "你好", "ss");
}

public static void sendEmail(String touser,String title,String content){
    String host = "smtp.exmail.qq.com";// 邮件服务器地址
    String addresser = "service@XX.cn";// 发件人地址
    String username = "XXX";// 发件人邮箱用户名
    String password = "XXXXXX";// 发件人邮箱密码
    try {
        Properties props = new Properties();
        props.put("mail.smtp.host", host);// 设置smtp的邮件服务器地址
        props.put("mail.smtp.auth", "true");// 注意的是此处必须加上true要不然smtp连接的时候不会认证
        props.put("mail.transport.protocol", "smtp"); // 设置邮件的传输协议是smtp
        MyAuthenticator auth = new MyAuthenticator(username, password);
        // Session类定义了基本的邮件会话
        Session session = Session.getDefaultInstance(props, auth);// 创建一个Session
        MimeMessage message = new MimeMessage(session);
        // 设置发件人邮件地址
        message.setFrom(new InternetAddress(addresser));
        // 设置收件人邮件地址 Message.RecipientType.TO 设置发送的类型
        message.setRecipient(Message.RecipientType.TO,
                     ........

错误信息
serviceddservice...
javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at com.jingdu.common.Function.sendEmail(Function.java:89)
at com.jingdu.common.Function.main(Function.java:54)

  • 写回答

5条回答 默认 最新

  • huoyj 2011-11-25 14:27
    关注

    [code="java"]public class JavaMailTest
    {

    /**
     * @param args
     */
    
    private static final Logger logger = Logger.getLogger(Object.class);
    
    public static void main(String[] args) throws Exception
    {
        String userName = "xxxx@qq.com";
        // 下面是邮箱的密码
        String password = "xxxx";
        String host = "smtp.qq.com";
        String protocal = "smtp";
        String to = "xxxx@126.com";
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(props);
        MimeMessage message = new MimeMessage(session);
        message.setRecipients(RecipientType.TO, to);
        message.setFrom(new InternetAddress(userName));
        message.setSubject("测试邮件");
        message.setText("Hello World ", "UTF-8");
        Transport transport = session.getTransport(protocal);
        transport.connect(host, userName, password);
        transport.sendMessage(message, message.getAllRecipients());
        System.out.println("--------send mail success-------------");
        logger.info("=============================");
    }
    

    [/code]
    这个我测试成功了,但你首先要开启你的qq邮箱的SMTP服务,
    设置->帐户->POP3/IMAP/SMTP服务,里面的开启POP3/SMTP服务和开启IMAP/SMTP服务勾选上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。