Php 网络表单';s将发送到我共享主机帐户上的STMP电子邮件地址,但不会发送到gmail、yahoo等
我试着搜索这个,但我可能只是不知道如何词搜索权 我曾尝试使用Node.js(express)和php设置web表单,但问题相同: 带有表单数据的电子邮件将发送到我的域名电子邮件地址没有问题,即使我的表单页面托管在与我的域名共享托管电子邮件地址不同的VPS提供商上。 当我尝试将数据发送到任何其他电子邮件地址时,如雅虎、gmail等,我会被重定向到“成功”页面,我在服务器上的控制台日志显示成功,但电子邮件从未真正通过。 我尝试了各种配置,并不断得到相同的结果。 我甚至尝试过从不同的电子邮件帐户发送它,我得到了相同的结果。我甚至不能让一个yahoo帐户发送到同一个yahoo帐户,但同一个yahoo帐户将发送邮件到我的共享托管电子邮件没有问题。 下面是我尝试使用的Node.js版本代码的示例:Php 网络表单';s将发送到我共享主机帐户上的STMP电子邮件地址,但不会发送到gmail、yahoo等,php,node.js,express,webmail,webforms-routing,Php,Node.js,Express,Webmail,Webforms Routing,我试着搜索这个,但我可能只是不知道如何词搜索权 我曾尝试使用Node.js(express)和php设置web表单,但问题相同: 带有表单数据的电子邮件将发送到我的域名电子邮件地址没有问题,即使我的表单页面托管在与我的域名共享托管电子邮件地址不同的VPS提供商上。 当我尝试将数据发送到任何其他电子邮件地址时,如雅虎、gmail等,我会被重定向到“成功”页面,我在服务器上的控制台日志显示成功,但电子邮件从未真正通过。 我尝试了各种配置,并不断得到相同的结果。 我甚至尝试过从不同的电子邮件帐户发送它
app.post('/send', (req, res) => {
const output = `
<p> you have a new contact request</p>
<h3>Contact Details</h3>
<ul>
<li>Name: ${req.body.name}</li>
<li>Email: ${req.body.email}</li>
<li>Phone: ${req.body.phone}</li>
</ul>
`;
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: 'mail.my-little-pwny.com',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: 'me@my-little-pwny.com', // username
pass: 'abc123' // password
},
tls: {
rejectUnauthorized:false
}
});
// setup email data with unicode symbols
let mailOptions = {
from: '"Nodemailer" <me@my-little-pwny.com>', // sender address
to: 'v.shelnutt@aol.com', // list of receivers
subject: 'Client Contact Request', // Subject line
text: 'Hello world?', // plain text body
html: output // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
res.render('index', {msg:'Success! We will contact you as soon as
possible!'});
});
});
app.post('/send',(req,res)=>{
常量输出=`
您有一个新的联系请求
联系方式
- 名称:${req.body.Name}
- 电子邮件:${req.body.Email}
- 电话:${req.body.Phone}
`;
//使用默认SMTP传输创建可重用的传输对象
让transporter=nodeEmailer.createTransport({
主持人:“mail.my little pwny.com”,
港口:465,
安全:true,//对于465为true,对于其他端口为false
认证:{
用户:'me@my-小pwny.com',//用户名
pass:'abc123'//密码
},
tls:{
拒绝:错误
}
});
//使用unicode符号设置电子邮件数据
让邮件选项={
发件人:“‘nodeEmailer’,//发件人地址
致:v。shelnutt@aol.com“,//接收者列表
主题:'客户联系请求',//主题行
text:“Hello world?”,//纯文本正文
html:output//html正文
};
//使用定义的传输对象发送邮件
transporter.sendMail(邮件选项,(错误,信息)=>{
如果(错误){
返回console.log(错误);
}
console.log('发送的消息:%s',info.messageId);
log('预览URL:%s',nodeEmailer.getTestMessageUrl(信息));
res.render('index',{msg:'Success!我们将尽快与您联系
可能的});
});
});
这是可能的
首先,您必须通过在域中添加mx记录,将personaldomain.com从C-panel转发到g-mail。然后将g-mail的SMTP设置为PHPMailer
您确定您的邮件主机已设置为允许中继吗?嗨,帕文,谢谢,有一件事让事情变得复杂,那就是我正在为某人创建此网站,而我无法访问他们的Gmail帐户进行设置。你认为最简单的解决办法是什么?这个人一点也不懂电脑,所以我需要尽量少用它。嘿@VinnyVincent如果我的答案是正确的,那么请接受我的答案并投票表决。非常感谢。