Php 网络表单';s将发送到我共享主机帐户上的STMP电子邮件地址,但不会发送到gmail、yahoo等

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等,我会被重定向到“成功”页面,我在服务器上的控制台日志显示成功,但电子邮件从未真正通过。 我尝试了各种配置,并不断得到相同的结果。 我甚至尝试过从不同的电子邮件帐户发送它

我试着搜索这个,但我可能只是不知道如何词搜索权

我曾尝试使用Node.js(express)和php设置web表单,但问题相同: 带有表单数据的电子邮件将发送到我的域名电子邮件地址没有问题,即使我的表单页面托管在与我的域名共享托管电子邮件地址不同的VPS提供商上。 当我尝试将数据发送到任何其他电子邮件地址时,如雅虎、gmail等,我会被重定向到“成功”页面,我在服务器上的控制台日志显示成功,但电子邮件从未真正通过。 我尝试了各种配置,并不断得到相同的结果。 我甚至尝试过从不同的电子邮件帐户发送它,我得到了相同的结果。我甚至不能让一个yahoo帐户发送到同一个yahoo帐户,但同一个yahoo帐户将发送邮件到我的共享托管电子邮件没有问题。 下面是我尝试使用的Node.js版本代码的示例:

    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如果我的答案是正确的,那么请接受我的答案并投票表决。非常感谢。