<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Spring – 使用`JavaMailSender`發送電子郵件 > 原文: [https://howtodoinjava.com/spring-core/send-email-with-spring-javamailsenderimpl-example/](https://howtodoinjava.com/spring-core/send-email-with-spring-javamailsenderimpl-example/) 在 Spring 5 提供的[`JavaMailSender`](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/mail/javamail/JavaMailSender.html)接口中學習**發送電子郵件**。 這是通過 gmail smtp 服務器發送電子郵件的分步示例。 我們將使用`javax.mail` maven 依賴來發送電子郵件,同時在實現`JavaMailSender`接口的`JavaMailSenderImpl`類中配置郵件屬性。 > 了解更多:[使用 Gmail SMTP 服務器發送電子郵件(javax.email)](https://howtodoinjava.com/for-fun-only/how-to-send-email-in-java-using-gmail-smtp-server/) ## 1\. Maven 依賴 請遵循[ maven 項目創建示例](https://howtodoinjava.com/maven/create-java-project-maven/)來創建項目。 現在,將 spring 依賴項與`javax.mail`一起導入。 `pom.xml` ```java <properties> <spring.version>5.2.0.RELEASE</spring.version> <email.version>1.16.18</email.version> </properties> <!-- Spring Context Support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>${email.version}</version> </dependency> ``` ## 2\. `JavaMailSender`和電子郵件模板 #### 2.1. Java 配置 給出了`JavaMailSender`的 Java 配置,該配置已配置為使用 Gmail SMTP 設置,并且我們配置了示例電子郵件模板,該模板已預先配置了發件人/收件人電子郵件和電子郵件文本。 您可以根據需要自定義配置。 `EmailConfig.java` ```java import java.util.Properties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; @Configuration public class EmailConfig { @Bean public JavaMailSender getJavaMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost("smtp.gmail.com"); mailSender.setPort(25); mailSender.setUsername("admin@gmail.com"); mailSender.setPassword("password"); Properties props = mailSender.getJavaMailProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.debug", "true"); return mailSender; } @Bean public SimpleMailMessage emailTemplate() { SimpleMailMessage message = new SimpleMailMessage(); message.setTo("somebody@gmail.com"); message.setFrom("admin@gmail.com"); message.setText("FATAL - Application crash. Save your job !!"); return message; } } ``` #### 2.2. XML 配置 在 Spring 上下文文件中,我們將創建一個通用的郵件發件人服務,該服務能夠使用 gmail 的 smtp 服務器發送 HTTP 消息。 另外,我們正在制作一個預配置的消息,該消息可以即時實例化并用于發送消息。 `applicationContext.xml` ```java <beans> <context:component-scan base-package="com.howtodoinjava" /> <!-- SET default mail properties --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com"/> <property name="port" value="25"/> <property name="username" value="admin@gmail.com"/> <property name="password" value="password"/> <property name="javaMailProperties"> <props> <prop key="mail.transport.protocol">smtp</prop> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.debug">true</prop> </props> </property> </bean> <!-- We can have some pre-configured messagess also which are ready to send --> <bean id="preConfiguredMessage" class="org.springframework.mail.SimpleMailMessage"> <property name="to" value="somebody@gmail.com"></property> <property name="from" value="admin@gmail.com"></property> <property name="subject" value="FATAL - Application crash. Save your job !!"/> </bean> </beans> ``` ## 3\. 發送電子郵件 此類使用`applicationContext.xml`文件中配置的 bean,并使用它們發送消息。 `EmailService.java` ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.SimpleMailMessage; import org.springframework.stereotype.Service; @Service("emailService") public class EmailService { @Autowired private JavaMailSender mailSender; @Autowired private SimpleMailMessage preConfiguredMessage; /** * This method will send compose and send the message * */ public void sendMail(String to, String subject, String body) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(body); mailSender.send(message); } /** * This method will send a pre-configured message * */ public void sendPreConfiguredMail(String message) { SimpleMailMessage mailMessage = new SimpleMailMessage(preConfiguredMessage); mailMessage.setText(message); mailSender.send(mailMessage); } } ``` ## 4\. 帶有附件和內聯資源的電子郵件 #### 4.1. 電子郵件附件 要使用電子郵件附加文件,請使用`MimeMessageHelper`將文件附加`MimeMessage`。 `Attach file` ```java public void sendMailWithAttachment(String to, String subject, String body, String fileToAttach) { MimeMessagePreparator preparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws Exception { mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); mimeMessage.setFrom(new InternetAddress("admin@gmail.com")); mimeMessage.setSubject(subject); mimeMessage.setText(body); FileSystemResource file = new FileSystemResource(new File(fileToAttach)); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.addAttachment("logo.jpg", file); } }; try { mailSender.send(preparator); } catch (MailException ex) { // simply log it and go on... System.err.println(ex.getMessage()); } } ``` #### 4.2. 內聯資源 有時,我們可能希望在電子郵件正文中附加內嵌資源,例如內嵌圖像。 通過使用指定的`Content-ID`將內聯資源添加到`MimeMessage`。 確保首先添加文本,然后添加資源。 如果您正相反進行操作,則此操作無效。 `Inline image` ```java public void sendMailWithInlineResources(String to, String subject, String fileToAttach) { MimeMessagePreparator preparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws Exception { mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); mimeMessage.setFrom(new InternetAddress("admin@gmail.com")); mimeMessage.setSubject(subject); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setText("<html><body><img src='cid:identifier1234'></body></html>", true); FileSystemResource res = new FileSystemResource(new File(fileToAttach)); helper.addInline("identifier1234", res); } }; try { mailSender.send(preparator); } catch (MailException ex) { // simply log it and go on... System.err.println(ex.getMessage()); } } ``` ## 5\. 演示 是時候測試 **spring 郵件發送程序**代碼了。 我正在從測試代碼發送兩條消息。 一個實例化并由測試類本身組成,另一個是來自`applicationContext.xml`文件的預配置消息。 `SpringEmailTest.java` ```java import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class SpringEmailTest { public static void main(String[] args) { //Create the application context ApplicationContext context = new FileSystemXmlApplicationContext ("classpath:com/howtodoinjava/core/email/applicationContext.xml"); //Get the mailer instance EmailService mailer = (EmailService) context.getBean("emailService"); //Send a composed mail mailer.sendMail("somebody@gmail.com", "Test Subject", "Testing body"); //Send a pre-configured mail mailer.sendPreConfiguredMail("Exception occurred everywhere.. where are you ????"); } } ``` 上面的通話將發送電子郵件。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看