我想向所有电子邮件收件人发送附件。
这是Json。
{
"webId": 1001,
"clientId": 592571,
"startDate": null,
"endDate": null,
"externalKey": null,
"fromEmail": "abc@gmail.com",
"fromName": "Test",
"subject": "hello new",
"body": "This is a test mail new with attachment",
"status": "SUCCESS",
"sentDate": null,
"sendAttempts": 1,
"permanentFailure": false,
"emailRecipientModel": [
{
"webId": 1101,
"clientId": 592571,
"startDate": null,
"endDate": null,
"emailId": 1001,
"emailAddress": "xyz@gmail.com",
"status": "PENDING",
"smtpStatusCode": 123,
"recipientType": "TO"
},
{
"webId": 1102,
"clientId": 592571,
"startDate": null,
"endDate": null,
"emailId": 1001,
"emailAddress": "abc123@gmail.com",
"status": "PENDING",
"smtpStatusCode": 123,
"recipientType": "TO"
}
],
"emailAttachmentModel": [
{
"webId": 1201,
"clientId": 592571,
"emailId": 1001,
"key": "Test Key",
"location": "Test Location",
"name": "TestName.txt",
"content": "VkdocGN5QnBjeUJoSUhSbGMzUWdkR1Y0ZENCQmRIUmhZMmh0Wlc1MERRb05DbFJvYVhNZ2FYTWdZU0IwWlhOMElIUmxlSFFnUVhSMFlXTm9iV1Z1ZEEwS0RRcFVhR2x6SUdseklHRWdkR1Z6ZENCMFpYaDBJRUYwZEdGamFHMWxiblFOQ2cwS1ZHaHBjeUJwY3lCaElIUmxjM1FnZEdWNGRDQkJkSFJoWTJodFpXNTBEUW9OQ2xSb2FYTWdhWE1nWVNCMFpYTjBJSFJsZUhRZ1FYUjBZV05vYldWdWRBMEs="
}
]
}
现在我的电脑上有一个文本文件,我已将其转换为BASE64并将其设置为内容字段。现在,如何将此内容发送到电子邮件附件。
这是我的功能
public Email sendEmail(Email email){
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
List<EmailConfig> emailConfigs = emailConfigRepository.findAllByClientWebId(email.getClient().getWebId());
EmailConfig emailConfig;
if (emailConfigs.iterator().hasNext()){
emailConfig = emailConfigs.iterator().next();
}else{
throw new ResourceNotFoundException(HttpStatus.NOT_FOUND.getReasonPhrase());
}
javaMailSender.setHost(emailConfig.getHostName());
javaMailSender.setPort(emailConfig.getPortNo());
javaMailSender.setUsername(emailConfig.getEmail());
javaMailSender.setPassword(emailConfig.getPassword());
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.starttls.enable", "true");
javaMailProperties.put("mail.smtp.auth", "true");
javaMailProperties.put("mail.transport.protocol", "smtp");
javaMailProperties.put("mail.debug", "true");
try{
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(email.getFromEmail());
String recipients = email.getEmailRecipient().stream()
.map(EmailRecipient::getEmailAddress)
.collect( Collectors.joining( "," ) );
helper.setTo(InternetAddress.parse(recipients));
helper.setSubject(email.getSubject());
helper.setText(email.getBody());
//helper.addAttachment(emailAttachment.getName(),file); //need help here
javaMailSender.setJavaMailProperties(javaMailProperties);
javaMailSender.send(message);
}catch (Exception exception){
exception.printStackTrace();
email.setStatus(EmailStatus.FAILED);
}
return email;
}
将有一个附件列表,因此如何获取该列表并将其发送给所有收件人。
我们将不胜感激。
创建临时文件:
File file = File.createTempFile(emailAttachment.getName(), ".tmp");
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(emailAttachment.getContent());
fileWriter.close();
就这样使用:
helper.addAttachment(emailAttachment.getName(), file);
问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法:
问题内容: 我正在尝试在带有附件的codeigniter上发送电子邮件。 我总是成功收到电子邮件。但是,我从未收到带有附件的文件。以下是代码,非常感谢所有评论。 问题答案: $ this- >电子邮件-> attach() 使您可以发送附件。将文件路径/名称放在第一个参数中。注意:使用文件路径,而不是URL。对于多个附件,请多次使用该功能。例如:
我正试图通过console/cron使用CakePHP 1.3电子邮件组件发送电子邮件。电子邮件被发送出去了 通过表单完成后,电子邮件将与附件一起成功发送。我已经尝试添加了$this- 我的代码如下: 所以,基本上我的问题是,当我通过控制台/cron运行外壳脚本时,我如何获得附件发送的电子邮件。 提前谢谢你。
尝试发送带有pdf附件的电子邮件,尝试使用swickmailer,但没有成功,此代码使用zip但不使用PDF:( 邮件被发送罚款,我得到的邮件:但附件是不存在的,在meial有所有的bas64编码在电子邮件像: onatatent-Type: Application/octet-stream; name="media.pdf"Content-transver-Encode: base 64 Con
问题内容: 是否有用于NodeJS的库,用于发送带有附件的邮件? 问题答案: 是的,这非常简单,我使用nodemailer: 然后阅读文件并发送电子邮件:
问题内容: 如何使用Outlook 2010发送带有附件的电子邮件(本地文件或Intranet中的文件)? 似乎不起作用。 问题答案: 不,这根本不可能。协议中对此没有规定,如果可能的话,这将是一个巨大的安全漏洞。 发送文件但让客户端发送我能想到的电子邮件的最佳方法是: 让用户选择一个文件 将文件上传到服务器 上传后让服务器返回随机文件名 在消息正文中建立一个包含上载文件的URL 的链接