客户端SMTP邮件发送失败及垃圾邮件、域名配置问题求助
我尝试在客户端使用SMTP发送邮件,但邮件始终无法送达,甚至垃圾邮件文件夹中也无相关内容。这是老师布置的项目,无需关注安全问题,仅需实现当用户使用邮箱作为用户名登录时,发送提示邮件(内容为“有人访问了你的账号,若不是你本人……”),目标邮箱从表单输入获取。为简化代码,当前仅发送表单文本框中输入的纯文本内容,原本计划发送HTML格式邮件。
以下是我使用的HTML代码,已在ElasticEmail平台创建凭证(此处为演示用):
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Send Email</title> </head> <body> <h1>Send Email</h1> <form id="email-form"> <label for="to">To:</label> <input type="email" id="to" name="to" required><br><br> <label for="subject">Subject:</label> <input type="text" id="subject" name="subject" required><br><br> <label for="body">Body:</label><br> <textarea id="body" name="body" rows="4" cols="50" required></textarea><br><br> <button type="button" onclick="sendEmail()">Send Email</button> </form> <!-- 引入第三方SMTPJS库实现客户端发件功能 --> <script src="第三方SMTPJS库"></script> <script> function sendEmail() { const to = document.getElementById('to').value; const subject = document.getElementById('subject').value; const body = document.getElementById('body').value; Email.send({ Host : "smtp.elasticemail.com", Username : "marvleybak@outlook.com", Password : "*****", port: 2525, To: to, From: 'marvleybak@outlook.com', // Your Outlook email address Subject: subject, Body: body }).then( message => alert('Email sent successfully') ); } </script> </body> </html>
更新1
一段时间后代码正常工作,推测是ElasticEmail平台的凭证需要生效时间。但发送的邮件一直进入垃圾邮件,请问如何规避?似乎需要在ElasticEmail验证域名,但我暂无资金,作为学习阶段的学生,希望通过免费自定义域名解决该问题以完成项目。
更新2
我以2美元在GoDaddy购买了域名,但尚未托管,请问如何免费托管域名并配置邮件服务?以及如何将该域名与ElasticEmail关联?
更新3
我已完成所有配置:使用Freehostia免费托管域名,其免费服务无SMTP,但可创建自定义域名邮箱,仅能接收并转发至个人Gmail。通过ElasticEmail免费SMTP服务解决发送问题,在Freehostia中添加ElasticEmail的CNAME、SPF、DKIM及DMARC记录,并在Gmail中添加该自定义邮箱作为发件地址,验证成功后,即可通过Gmail或原有JavaScript代码使用该域名邮箱发送邮件。注意:Gmail SMTP需使用465端口,JavaScript代码中可使用ElasticEmail的2525端口。
内容的提问来源于stack exchange,提问作者Godwin Marvellous

