账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    org.apache.log4j.net.SMTPAppender 发送邮件 邮件名乱码
    44
    0

    原来文件名只是英文,邮件名正常

    现在需求:邮件名加上日文

    <param name="Subject" value="[Error]ERROR"/>
    
    [Error]改成了[画面Error]
    

    收到的邮件名就乱码了。

    应该是编码问题,但是在哪改呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Apache Log4j中,SMTPAppender 类用于在SMTP服务器上发送邮件。以下是一个简单的示例,显示如何使用 SMTPAppender 类发送邮件,但邮件名("Test Mail")在发送过程中被乱码。

      ```java import org.apache.log4j.Logger; import org.apache.log4j.net.SMTPAppender; import org.apache.log4j.net.SMTPServer; import org.apache.log4j.net.SMTPSession; import org.apache.log4j.net.SMTPUtil;

      public class TestSMTPAppender { private static final Logger logger = Logger.getLogger(TestSMTPAppender.class);

      public static void main(String[] args) {
          // 创建SMTP服务器
          SMTPServer smtpServer = new SMTPServer("localhost", 25);
      
          // 创建SMTPSession,用于发送邮件
          SMTPSession session = smtpServer.createSession();
      
          // 创建SMTPAppender,用于发送邮件
          SMTPAppender appender = new SMTPAppender("queue", "file:/path/to/your/maildir", "utf-8", true, "smtp-mail");
          appender.setTarget("smtp.gmail.com");
          appender.setHost("smtp.gmail.com");
          appender.setPort(587);
          appender.setUsername("your-email@gmail.com");
          appender.setPassword("your-password");
          appender.setUseTLS(true);
          appender.setSSLEnabled(true);
      
          // 添加SMTPAppender到SMTPSession
          session.addAppender(appender);
      
          // 添加SMTPAppender到SMTPServer
          smtpServer.addAppender(appender);
      
          // 打开SMTPSession,发送邮件
          session.start();
      
          // 等待SMTPSession关闭
          session.stop();
      }
      

      } ```

      在上述代码中,我们首先创建了一个SMTP服务器,并创建了一个SMTPSession。然后,我们创建了一个SMTPAppender对象,该对象设置了一些属性,如SMTP服务器的URL、用户名、密码、邮件发送的目录路径、邮件编码(utf-8)和开启TLS/SSL的标志。然后,我们添加了SMTPAppender到SMTPSession中,这将使得SMTPAppender能够访问SMTP服务器。

      sendmail方法中,我们首先将SMTPSession添加到SMTPAppender,然后调用start方法,开始SMTPSession的发送邮件过程。最后,我们调用stop方法,关闭SMTPSession。

      注意:在上述示例中,你需要将"localhost"、"25"、"smtp.gmail.com"、"your-email@gmail.com"和"your-password"替换为你的实际SMTP服务器地址、SMTP服务器端口、邮箱地址、邮箱密码和邮件目录路径。同时,你需要将"queue"和"file:/path/to/your/maildir"替换为你的邮件目录路径。

      此外,如果你的邮件地址和密码使用的是邮箱客户端提供的,你可能需要在setUsernamesetPassword方法中提供这些值,因为邮箱客户端通常会为这些值提供默认值。例如:

      java setUsername("your-email@gmail.com"); setPassword("your-password");

      在发送邮件时,你需要将"your-email@gmail.com"和"your-password"替换为你的邮箱地址和密码。如果你使用的是Gmail或Outlook,你可能需要将这些值更改为你的邮箱账户的邮箱地址和密码。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部