Java 中的国际实习地址

International InternedAddress in Java

我有问题。我正在使用 java class javax.mail.internet.InternetAddress 通过 SMTP 解析和发送电子邮件,我无法更改 class(应该使用它)。问题是我想允许用户插入国际电子邮件地址(带有本地符号),这与 RFC 6531 和 RFC 6532 一致。但是 java InternetAddress 不接受此类电子邮件。 我的问题有解决方案吗?

谢谢。

把你的代码改成这个。

import javax.mail.internet.*; 

InternetAddress email = new InternetAddress();
System.out.println(email.parse("\"großer@gtdf.com\""));

虽然这几乎是这种情况的解决方法。我认为唯一好的解决方案是等待 java 团队更新 InternetAddress class 以便能够支持国际电子邮件地址。由于目前只支持RFC822

Java 邮件终于在 1.6 版本中支持 RFC 6531 和 RFC 6532

https://community.oracle.com/thread/4049399

如果您使用的是 maven ...

    <properties>
        <java.mail.version>1.6.1</java.mail.version>
    </properties>

...

            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>javax.mail-api</artifactId>
                <version>${java.mail.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>javax.mail</artifactId>
                <version>${java.mail.version}</version>
            </dependency>