Прикрепление файла в Grails с помощью плагина Mail - PullRequest
2 голосов
/ 19 февраля 2010

Я использую почту 0,9, и кажется, что функция вложения все еще не в? Был ли этот предмет до сих пор не включен?

Если это так, скажите, пожалуйста, как расширить плагин Grails, не взламывая код напрямую.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 19 февраля 2010

Кажется, я пропустил раздел Attachment в документации . То, что я увидел, было разделом TODO (который должен быть обновлен между прочим). Во всяком случае, вот гораздо более четкий пример, чем упомянутый там.

String path = "./web-app/images/grails_logo.jpg"

sendMail {
   multipart true
   to 'alfred@fbmsoftware.com'
   subject "Welcome to Grails!"
   body '''
       Greetings Earthlings!
   '''
   attachBytes path,'image/jpg', new File(path).readBytes()
}

При этом вы можете прикреплять любые файлы, если вы правильно указали тип содержимого, который я предполагаю.

0 голосов
/ 19 июня 2010

Плагин Grails ('grails install-plugin mail') отлично работает даже по протоколу TLS - см. Требования к отправке на mac.com.

Однако для тех, кто использует Outlook или другие корпоративные почтовые системы, я нашел немного другое решение Grails с использованием resources.xml и вспомогательных классов Spring JavaMail:

1) Добавьте следующее в myapp / grails-app / conf / spring / resources.xml (см. Ниже)

2) Определите услугу в вашей бизнес-службе по мере необходимости.

3) Добавьте несколько импортов - готово! импорт javax.mail.internet.MimeMessage import org.springframework.core.io.FileSystemResource import org.springframework.mail.javamail.MimeMessageHelper

def mailSender

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  <!-- Mail service -->
  <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="mail.munger.somecorp.com"/>
    <property name="port" value="25"/>

    <property name="javaMailProperties">
      <props>
        <prop key="mail.debug">false</prop>
      </props>
    </property>
  </bean>

  <!-- more bean definitions go here... -->

</beans>

Java-код для добавления вложения:

  MimeMessage message = mailSender.createMimeMessage()
  MimeMessageHelper helper = new MimeMessageHelper( message, true )

  for ( String recipients : [ customer1, customer2, customer3, customer4 ].findAll { it != null } )
  {
      helper.addTo( str );
  }
  helper.setFrom( "" )
  helper.setSubject( aSubject )
  helper.setText("...")

  FileSystemResource fileResource =
    new FileSystemResource( new File(tempFile) )
  helper.addAttachment( tempFile.substring(tempFile.lastIndexOf( "/" ) + 1), fileResource, "application/pdf" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...