Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Java 如何使用gmail smtp发送邮件Spring实现?_Java_Spring_Email_Gmail - Fatal编程技术网

Java 如何使用gmail smtp发送邮件Spring实现?

Java 如何使用gmail smtp发送邮件Spring实现?,java,spring,email,gmail,Java,Spring,Email,Gmail,如何使用gmail smtp发送邮件Spring实现 执行main方法后获取exeception 线程“main”java.lang.NoClassDefFoundError中出现异常:javax/activation/FileTypeMap public static void main(String[] args) { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost("s

如何使用gmail smtp发送邮件Spring实现

执行main方法后获取exeception 线程“main”java.lang.NoClassDefFoundError中出现异常:javax/activation/FileTypeMap

public static void main(String[] args) {
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost("smtp.gmail.com");
        sender.setPort(25);
        sender.setPassword("xxxxxxx");
        sender.setUsername("businesscaliber@gmail.com");

        MimeMessage message = sender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message);
            helper.setTo("yashwantchavan@gmail.com");
            helper.setText("Thank you for ordering!");
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        sender.send(message);
    }
在将activation.jar放入类路径后,获取此异常

javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. 21sm3277189pzk.7

以下是一些示例:


据我所知,GMail只支持加密的SMTP,错误消息以一种相当迂回的方式告诉你。您需要将Spring配置为使用它而不是明文SMTP


请参阅前面的一个问题,该问题解释了如何配置
JavaMailSenderImpl
来实现这一点(不过我还没有亲自测试过)。

在Saurabh post的一个简短修订版中,您可以简单地:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" p:host="smtp.gmail.com"
    p:port="587" p:username="donotreply@host.com" p:password="aSmartPassWord">
    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.smtp.timeout">8500</prop>
        </props>
    </property>
</bean>

真的
真的
8500
您需要添加行:

Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
sender.setJavaMailProperties(props);
Properties类是java.util.Properties


第一次你会得到错误“…请通过你的网络浏览器登录,然后再试一次…”,所以你需要去你的谷歌邮箱阅读新的信件。将有关闭安全设置的链接。

执行方法后,在线程“main”java.lang.NoClassDefFoundError中获取以下异常:com.businesscalible.utility.Mailer.main(Mailer.java:13)上的javax/activation/FileTypeMap似乎类路径中缺少jar。。。activation.jar在那里吗?添加activation之后,jar获得另一个exeception javax.mail.MessagingException:530 5.7.0必须首先发出STARTTLS命令。21sm3277189pzk.7