【问题标题】:International InternedAddress in JavaJava中的国际实习地址
【发布时间】:2016-01-01 18:51:45
【问题描述】:

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

谢谢。

【问题讨论】:

  • 你已经尝试过什么?
  • 没什么。我没有任何想法:D 我不能使用正则表达式,因为我需要那个类
  • 显示你拥有的代码,一般 utf-8 应该可以工作。
  • link 它不适用于 ä、ö、ś 等本地符号。我正在使用该方法。
  • 你试过设置 strict 为 false 吗?

标签: java jakarta-ee jakarta-mail email-validation


【解决方案1】:

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

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>

【讨论】:

    【解决方案2】:

    把你的代码改成这个。

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

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

    【讨论】:

    • 如果您有兴趣在此支持下测试 JavaMail 1.6.0 版本,请通过 javamail_ww@oracle.com 与我联系。
    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多