当我使用 JavaMailSender 发送带有附件的电子邮件时,它总是失败并抛出以下异常:
org.springframework.mail.MailSendException: Failed messages: javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.io.IOException: Exception writing Multipart
; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.io.IOException: Exception writing Multipart
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1365)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:462)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:359)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:354)
Run Code Online (Sandbox Code Playgroud)
这是我的代码
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(userName);
helper.setTo(toAddress);
helper.setSubject(subject);
FileSystemResource file = new FileSystemResource(filePath);
helper.addAttachment(file.getFilename(), file);
} catch (Exception e) {
log.error("oops..., ", e);
}
mailSender.send(message);
Run Code Online (Sandbox Code Playgroud) 我很困惑可变引用如何在 for 循环中工作,而不可变引用则不然。它是一个迭代器吗?
我发现循环之后,引用chars引用了 value ""。
fn main() {
let str_value: String = "abc".to_string();
let chars = str_value.chars();
for char_value in chars {
println!("char: {}", char_value);
}
}
Run Code Online (Sandbox Code Playgroud)
char: a
char: b
char: c
Run Code Online (Sandbox Code Playgroud)
fn main() {
let str_value: String = "abc".to_string();
let chars = str_value.chars();
for char_value in &chars {
println!("char: {}", char_value);
}
}
Run Code Online (Sandbox Code Playgroud)
error[E0277]: `&std::str::Chars<'_>` is not an iterator
--> src/main.rs:5:23
|
5 | for char_value in &chars {
| -^^^^^
| …Run Code Online (Sandbox Code Playgroud)