java - 从 java 应用程序 : Relaying denied 发送电子邮件时出现异常

标签 java spring smtp jakarta-mail emailrelay

我们正在使用 Spring Mail 从 java 应用程序发送电子邮件 org.springframework.mail.javamail.JavaMailSenderImpl

Spring 邮件配置是

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" autowire-candidate="default">
        <property name="host" value="${test.email.host}" />
        <property name="port" value="${test.email.port}" />
        <property name="username" value="${test.email.username}" />
        <property name="password" value="${test.email.password}" />
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>

            </props>
        </property>
    </bean>

Java代码快照是

    @Autowired(required = true)
    @Qualifier("errorMessageMailSender")
    JavaMailSenderImpl mailSender;

    ..............
    ..............

          try {
                MimeMessage mailMessage = buildEmailMimeMessage(properties,mimeMultipart);
                logger.info(String.format("Built MimeMessage object is <%s>",mailMessage));
                if (mailMessage != null) {
                    mailSender.send(mailMessage);
                    logger.info("Mail sent Successfully");
                }else{
                    logger.info("Mail send failed as Mail message object construction failed.");
                }
                result=true;
            } catch (Exception e) {
                logger.error("An exception occurred while sending mail :: " + e.getMessage());
            }

属性文件

test.email.host=mail.mydomain.net
test.email.port=2525
test.email.username=demo@mydomain.net
test.email.password=mypassword

但是我们在异常之下,并且没有发送电子邮件

An exception occurred while sending mail :: Failed messages: javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
    com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 <demo@mydomain.net>... Relaying denied

最佳答案

您尝试向其发送邮件的 smtp 服务器拒绝中继。如果您自己的本地服务器没有问题,您可以更改配置以中继来自您的 mydomain.net 的邮件。但如果它是外部服务器(例如 gmail),则必须使用真实的注册域。

要针对邮件服务器测试您的代码,我建议您设置一个 dockerized Apache James 服务器,在其上创建一些测试用户并发送和接收电子邮件。

关于java - 从 java 应用程序 : Relaying denied 发送电子邮件时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884126/

相关文章:

java - 如何查找/更改 hibernate 查询

java - 正确使用泛型类型避免不必要的转换(SuppressWarnings 未经检查的转换)

java - Spring bean 不使用@Component 注释 Autowiring

Javamail问题: cannot send mails through SMTP after checking mails with POP3

c# - 使用来自 gmail 的自定义域通过 c# 发送电子邮件

php - Google App-Gmail 无法设置。通过 swiftmailer SMTP 传输 (PHP) 发送时从地址替换 Gmail

JDK8 改变了 Javadoc 布局

java - 数组到列表? Angular - Spring

java - 如何在 Spring MVC Web 应用程序中注册格式化程序?

java - 标准api中是否存在自然比较器?