PDF 附件 NodeMailer

2024-05-22

预先感谢您的回复。我编写了一些使用nodemailer 0.7.1的代码。它发送电子邮件并将pdf附加到电子邮件中。但是,.pdf 附件在编码时会自行损坏或截断或发生其他情况。我之所以说这是附件之前的文件(即我本地的文件)是512kb,而电子邮件中的附件只有1kb。

这是使用nodemailer的代码:

var nodemailer = require("nodemailer");
var util = require("./util");
var env = require('./environment');

var smtpTransport = nodemailer.createTransport("SMTP",{
    service: env.service,
    auth: {
        user: env.user,
        pass: env.password
    }
});

exports.sendAttachment = function(info, callback, debug) {
    util.validatInput(info, ["body"] , function(err, info){
        if(err){
            util.errPrint(err, "serverUtil/nodemailer.sendAttachment", 1, function(message){callback(err);});
        }else {
            var mailOptions={
                from : "[email protected] /cdn-cgi/l/email-protection",
                to : "[email protected] /cdn-cgi/l/email-protection",
                subject : "Application from " + info.userEmail,
                text : info.body,
                attachments: [
                    {
                        fileName: 'file.pdf',               //This needs to be the link to the form, or the actual form
                        filePath: 'file.pdf',
                        contentType: "application/pdf"
                    }
                ]
            }

            smtpTransport.sendMail(mailOptions, function(error, response){
                
                if(error){
                    console.log(error);
                    callback(err);
                }
                else{
                    console.log("Message sent: " + response.message);
                    callback({msg: "form sent"});
                }
            }); 
        }
    })
}

我使用谷歌浏览器作为浏览器,但尝试过其他浏览器但无济于事。显然,浏览器不应该与此有任何关系,因为 pdf 本身的数据就是这里的问题。

我将文件放在同一目录中以避免出现问题,甚至在当前目录的文件之前添加了“./”。我还将“文件路径”更改为“路径”,然后它根本没有发送任何附件。

我认为问题出在“附件”数组中。也许这些字段不正确,或者我需要添加更多信息。

如果有人可以告诉我是否需要流式传输或其他什么而不是我正在做的事情,如果需要的话如何流式传输文件,那就太好了!


var api_key = 'key-6b6987887a1aa9489958a5f280645f8b';
var domain = 'sandboxcd1a6d15d41541f38519af3f5ee93190.mailgun.org';
var mailgun = require('mailgun-js')({apiKey: api_key,domain:domain});
var path = require("path");

var filepath = path.join(__dirname, 'wacc.pdf');

var data = {
  from: '[email protected] /cdn-cgi/l/email-protection',
  to: '[email protected] /cdn-cgi/l/email-protection',
  subject: 'Today Test',
  text: 'Sending Test',
  attachment: filepath
};

mailgun.messages().send(data, function (error, body) {
  console.log(body);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PDF 附件 NodeMailer 的相关文章

随机推荐

  • 如何将 java ArrayList 转换为等效的 double[] [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Java 中从 List 转换为 double https stackoverflow com questions 6018267 how to cast from listdouble to
  • 在多个 angular.js 应用程序之间共享单个服务

    我正在构建一个电子商务网站 基于 shopify 并且使用多个小型 angularjs 应用程序来处理诸如快速购物车 愿望清单 过滤产品和其他一些较小项目之类的事情 我最初使用了一个大型应用程序 具有路由和所有内容 但当我没有完整的 RES
  • 缓存消息discord.js

    我想做一些反应角色 但为此 我必须缓存机器人启动之前发送的消息 我尝试过channel messages fetch 但到目前为止还没有奏效 我当前的代码 client on messageReactionAdd async reactio
  • 如何在 Metro 应用程序中从 Web 上下文(Iframe)发出 javascript 警报。

    在我的 Metro 应用程序中 我使用 iframe 加载 Web 应用程序 基本上是一个包含一些控件的表单 最后用户单击 完成 按钮 我想显示警报 我在地铁应用程序中知道 我们可以使用 new Windows UI Popup Messa
  • 如何停止或更改 Spring Integration Poller 的延迟

    我正在使用 Spring Integration 使用以下配置从目录中读取文件 但是 一旦找到任何文件 我希望停止轮询器 直到服务不再重新启动 有什么方法可以在运行时更改轮询器延迟或在运行时启动 停止轮询器 Bean public Mess
  • SQL Server 触发器从多个表中删除一条记录

    我知道这可以使用外键来完成 但我无法添加它们 或者当我插入新记录时会发生奇怪的事情 这个数据库中有很多存储过程 但我不知道它们是做什么的 因为我对存储过程一无所知 我希望有人可以帮助我找到一个触发器 当我从 Product 表中删除特定的
  • HTTPURLConnection 不遵循从 HTTP 到 HTTPS 的重定向

    我不明白为什么JavaHttpURLConnection不遵循从 HTTP 到 HTTPS URL 的 HTTP 重定向 我使用以下代码来获取页面https httpstat us https httpstat us import java
  • 通过 Amazon SQS 将压缩文本从 PHP 发送到 NodeJS

    我似乎一直坚持通过 Amazon SQS 将压缩消息从 PHP 发送到 NodeJS 在 PHP 方面我有 SQS gt sendMessage Array QueueUrl gt queueUrl MessageBody gt artic
  • jQuery Signature Pad:使用类型化版本获取 JSON 输出

    我一直在使用 Thomas J Bradley 的 jQuery Signature Pad 插件来捕获绘制的签名 并且效果很好 我想做的是还允许输入签名如演示所示 http thomasjbradley ca lab signature
  • json文件格式的升级路径

    我们将 Java 应用程序的用户首选项存储在 JSON 文件中 使用Jackson http jackson codehaus org 随着我们继续开发该应用程序 我们将添加首选项 重命名首选项并删除过时的首选项 当用户将应用程序升级到下一
  • Spring @RestController 不设置带有响应的 cookie

    我有以下休息端点 我想将 cookie 与我的ResponseEntity 然而 在成功发送响应后 却找不到 cookie RequestMapping value myPath method RequestMethod POST publ
  • 单个查询删除并显示重复记录

    采访中提出的问题之一是 一张表有100条记录 其中 50 个 是重复的 是否可以用单个 查询删除重复记录 从表中以及选择和 显示剩余 50 条记录 这可以在单个 SQL 查询中实现吗 Thanks SNA 对于 SQL Server 你会使
  • 我可以通过函数更改初始化的字符指针吗?

    这是我的main c include
  • 将 MVC 操作结果发送到打印机

    我有一个带有操作的控制器 SomeController ActionToBePrinted ActionToBePrinted 返回一个 html 视图 当按下按钮时 从普通的 mvc razor 视图调用此操作 当按下按钮时 我将如何将视
  • VBA 中的 If 和 Or 多个语句

    我想将包含 14 列的 Excel 文件重新分配到正确的列 包含 12 000 行 为此 我必须使用一些 If And Or 语句将数字放入矩阵中 但显然我没有从中得到正确的东西 它使我的所有单元格为零 而具有值的单元格应保留该值 我哪里出
  • 使用 VBScript 切换当前活动声音设备?

    我想在连接到我的计算机 Windows 7 32 位 的两个音频设备之间切换 我看了一下question https stackoverflow com questions 35709 change active sound card on
  • 调整pandas read_sql_query NULL值处理?

    当我做 from sqlalchemy import create engine import pandas as pd engine create engine sqlite conn engine connect conn execut
  • 根据另一个非索引数组中的值从 numpy 数组中选择元素

    假设我有以下两个数组 a array 1 L 74 423088306605 5 H 128 05441039929008 2 L 68 0581377353869 0 H 88 15726964130869 4 L 97 45015825
  • 使用 Moment.js 从 ISO 字符串中提取 utcOffset

    使用 moment js 我尝试从 ISO 日期字符串中提取偏移量 以便稍后在格式化纪元时间戳时使用该偏移量 以确保时间戳的转换位于同一时区 即使字符串中的偏移量为 0400 结果始终为0 var currentTime 2015 03 1
  • PDF 附件 NodeMailer

    预先感谢您的回复 我编写了一些使用nodemailer 0 7 1的代码 它发送电子邮件并将pdf附加到电子邮件中 但是 pdf 附件在编码时会自行损坏或截断或发生其他情况 我之所以说这是附件之前的文件 即我本地的文件 是512kb 而电子