大佬教程收集整理的这篇文章主要介绍了使用 Typescript 和类发送 mailgun 消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试给自己发送一封电子邮件,只是为了测试以确保我已正确设置所有内容。我没有收到任何错误消息,因此无法真正找到我犯错的地方。
import mg,{ Mailgun } from "mailgun-Js"
import utils = require('./utils')
interface MailerConfig {
APIKey: String,domain: String
}
export class Mailer {
private mailgun: Mailgun;
constructor(
private config: MailerConfig,private fromEmail: String = 'test <Hello@test.com>'
) {
this.mailgun = mg({
APIKey: this.config.APIKey,domain: this.config.domain
})
}
async sendmessage(email: String,subject: String,templatename: String,templateVars: Object): Promise<any> {
const mailData = {
from: this.fromEmail,// to: email,to: 'test@test.com',subject,template: templatename,...templateVars
}
return this.mailgun.messages().send(mailData,(err,body) => {
if(err || !body) {
console.log(err)
console.error('Error:',err)
}
console.log('successfully sent email.')
})
}
}
我正在尝试使用以下内容发送消息:
const sendEmailToRandomUser = async (): Promise<voID> => {
try {
const randomUser: Userdocument = await pickRandomUser()
// Send winner email using email from user document
const mailer = new Mailer({
APIKey: process.env.MAILGUN_API_KEY || '',domain: process.env.MAILGUN_DOMAIN || 'test.domain.com'
})
mailer.sendmessage(
randomUser.email,'You\'ve won!','wewm-please-complete-winner',{
'v:claimPrizeUrl': 'test'
}
).then((res) => {
console.log(res)
console.log('exit process')
// exit automated scheduler
process.exit(1)
}).catch(err => console.log(err))
console.log('end of sendEmailToRandomUser')
// if everything goes well and email is sent
// save user property as having received saID email
} catch (err) {
console.log(err)
}
}
sendEmailToRandomUser()
我得到以下输出:
end of sendEmailToRandomUser
undefined
exit process
我哪里出错了?
我改为将调用函数的格式改为如下:
const response = await mailer.sendmessage(
randomUser.email,'You\'ve won!','wewm-please-complete-winner',{
'v:claimPrizeUrl': `${process.env.HOSTNAME}/.../.../.../${winningUser.wonEverythingToken}`
},() => onEmailSendCompleteCallBACk('test@test.com')
)
通过以下方式传递 onComplete 回调以在完成时触发:
sendmessage(
email: String,subject: String,templatename: String,templateVars: Object,onEmailSentComplete?: Function
): Promise<any> {
// create mailData info for email
const mailData = {
from: this.fromEmail,// to: email,to: 'test@test.com',//TODO: make this user email
subject,template: templatename,...templateVars
}
return this.mailgun.messages().send(mailData,(err,body) => {
if (err || !body) {
console.error('Error:',err)
}
console.log('successfully sent email to Win Everything We Make Winner!')
if (onEmailSentCompletE) {
console.log('email sent!')
onEmailSentComplete()
}
})
}
以上是大佬教程为你收集整理的使用 Typescript 和类发送 mailgun 消息全部内容,希望文章能够帮你解决使用 Typescript 和类发送 mailgun 消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。