当前位置: 首页 > 知识库问答 >
问题:

如何创建发送电子邮件的函数,参数设置为String from、String to、String Subject和String body?

鄢英毅
2023-03-14

我正在尝试创建一个java批处理电子邮件程序,该程序将向带有excel报告附件的特定收件箱发送电子邮件。我有这个功能:

public void sendEmail(String to, String from, String subject, String body)
{

}

我正在尝试使用Spring,目前我正在尝试在app上下文文件中坚持xml配置,而不是注释(出于学习目的)。我想注入一个静态资源,它是一个excel文件,出于学习目的,我避免使用FileSystemResources作为我的导师/老师的附件。我也不需要身体说什么。出于虚拟目的,主题行将是“报告”。这是我到目前为止所拥有的,只需要实际电子邮件功能的肉,这样我就可以在主类中通过引用传递sendEmail的参数:

public class SendEmail 
{
    private JavaMailSender mailSender;

    public SendEmail(JavaMailSender ms)
    {
        this.mailSender = ms;
    }

    public void sendEmail(String from, String to, String Subject, String body)
    {

        MimeMessage message = mailSender.createMimeMessage();

        try
        {
            MimeMessageHelper helper = new MimeMessageHelper(message);
            helper.setTo("whatever@xyz.com");
            helper.setText("Test email!");

            mailSender.send(message);
        }

        catch (MessagingException e)
        {
            throw new MailParseException(e);
        }
    }

    public void setMailSender(JavaMailSender mailSender)
    {
        this.mailSender = mailSender;
    }
}

这是applicationContext。xml代码:

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

    <context:component-scan base-package="com.transportation"/>

    <bean id = "mailSender" class = "org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name = "host" value = "Whatever" />
        <property name = "port" value = "25" />
    </bean>

    <bean id = "sendEmail" class = "com.transportation.email.util.SendEmail">
        <constructor-arg ref="mailSender"/>
    </bean>

</beans>

共有1个答案

廉元龙
2023-03-14

试试这个。

public void sendMail(final String messageStr, final boolean isHtml) throws MessagingException {

        final MimeMessage message = mailSender.createMimeMessage();
        final MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(simpleMailMessage.getFrom());
        helper.setTo(simpleMailMessage.getTo());
        helper.setCc(simpleMailMessage.getCc());
        helper.setSubject(simpleMailMessage.getSubject());
        helper.setText(messageStr, isHtml);
        helper.addInline("myFile", ResourceUtil.loadResourceAsFileSystemResource("NameOfresource"));
        mailSender.send(message);
    }


public static FileSystemResource loadResourceAsFileSystemResource(final String fileRoute) {

        File file = null;
        FileSystemResource fileSystemResource;
        try {
            file = new ClassPathResource(fileRoute).getFile();
            fileSystemResource = new FileSystemResource(file);
        }
        catch (final IOException e) {
            fileSystemResource = null;
        }

        return fileSystemResource;
    }



<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.host">${mail.smtp.host}</prop>
            <prop key="mail.smtp.port">${mail.smtp.port}</prop>
        </props>
    </property>
</bean> 

<bean id="sfErrorMailSender" class="XXX.MailSender">
    <property name="mailSender" ref="mailSender" />
    <property name="simpleMailMessage" ref="sfErrorNotificationMailMessage" />
</bean>

<bean id="sfErrorNotificationMailMessage" class="org.springframework.mail.SimpleMailMessage">
    <property name="from" value="${mail.message.error.sf.to}" />
    <property name="to" value="${mail.message.error.sf.from}" />
    <property name="subject" value="${mail.message.error.sf.subject}" />
    <property name="text" value="${mail.message.error.sf.body}" />
    <property name="cc" value="${mail.message.error.sf.cc}" />
</bean>
 类似资料:
  • 我正在使用一个1&1托管服务器上的基本脚本: 但是由于某些原因,我没有收到任何电子邮件,也没有任何错误,因为PHP mail()函数没有发送电子邮件指令。 我认为这可能是一个服务器问题,但1&1声明它是完全支持的。我也从这个服务器/主机发送电子邮件之前使用的只是一个收件人,主题和主体,所以我相当不确定为什么它现在不工作! ..起作用了,所以使用标题似乎是个问题?

  • 我是一名新开发人员,致力于用AMP代码构建“mywebsite.com”网站。我想创建一个页面,其中包含用户名、电子邮件地址和消息的输入字段。我希望用户能够输入这三个字段,并将用户名、电子邮件地址和邮件发送到“myemail@gmail.com” 以下是我页面的超文本标记语言: 这是我的php文件: 在真正的代码中,我用我的网站URL和电子邮件代替了我的网站。com和admin@mywebsite

  • 我有一个构建应用程序的TeamCity服务器和一个跟踪特性请求/错误的YouTrack实例。我已经设置了TeamCity/YouTrack集成,因此问题日志在TeamCity中正确填写了自上次成功生成以来在YouTrack中关闭的项目。如何设置TeamCity以向用户发送包含此问题列表的格式良好的电子邮件?

  • 本文向大家介绍如何创建一个链接以HTML发送电子邮件?,包括了如何创建一个链接以HTML发送电子邮件?的使用技巧和注意事项,需要的朋友参考一下 要创建发送电子邮件的链接,请使用带有href属性的<a>标记。该的mailto链接<a>标签里面添加。只需记住在mailto链接中添加您想接收电子邮件的电子邮件地址。 示例 您可以尝试运行以下代码来创建一个链接,以HTML格式发送电子邮件。

  • 问题内容: 我已经使用JMS在Web应用程序中成功发送了电子邮件,但是结果仅以纯文本显示。我希望内容能够显示html。我该怎么做?这大致就是我所拥有的: 问题答案: 根据Javadoc,在需要时,这些设置将默认的mime类型设置为。而是使用代替。

  • 问题内容: 我希望我的网站能够发送电子邮件而不刷新页面。所以我想使用Javascript。 这是我要调用的函数的方式,但是我不确定要在javascript函数中放入什么。通过研究,我发现了一个使用mailto方法的示例,但是我的理解是实际上并没有直接从站点发送邮件。 所以我的问题是,我在哪里可以找到要放在JavaScript函数中的内容,以便直接从网站发送电子邮件。 问题答案: 您不能直接使用ja