当前位置: 首页 > 知识库问答 >
问题:

用php imap签署gmail

宦兴朝
2023-03-14

我的代码

$headers  = 'MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL;
$headers .= 'From: Me <me@gmail.com>' . PHP_EOL;
imap_mail('you@gmail.com','test',"$output","$headers");

有办法在邮件上签名吗?当我使用上述代码测试发送电子邮件时,我收到了电子邮件,但我收到了错误

This message may not have been sent by: me@gmail.com  Learn more  Report phishing

根据gmail,他们将签名数据附加到标题以进行身份验证

我用gmail imap发送邮件

$inbox = imap_open($hostname,$username,$password)
          or die('Cannot connect to Gmail: ' . imap_last_error());

有没有办法使用php imap对电子邮件进行身份验证?

共有1个答案

倪鹏
2023-03-14

如果您想以Gmail用户身份发送邮件,我建议您使用Gmail的SMTP。因为IMAP主要用于接收来自收件箱的邮件。

下面是如何从Gmail的SMTP发送邮件。

第一

  • 确保PEAR Mail包已安装。
    • 通常,特别是对于PHP 4或更高版本,这已经为您完成了。试一试。(Mail.php)

    然后

    使用SMTP认证从PHP发送邮件-示例

    <?php
     require_once "Mail.php";
    
     $from = "Sender <sender@gmail.com>";
     $to = "Recipient <recipient@gmail.com>";
     $subject = "Hi!";
     $body = "Hi,\n\nHow are you?";
    
     $host = "smtp.gmail.com";
     $username = "username@gmail.com";
     $password = "Gmail Password";
    
     $headers = array ('From' => $from,
       'To' => $to,
       'Subject' => $subject);
     $smtp = Mail::factory('smtp',
       array ('host' => $host,
         'auth' => true,
         'username' => $username,
         'password' => $password));
    
     $mail = $smtp->send($to, $headers, $body);
    
     if (PEAR::isError($mail)) {
       echo("<p>" . $mail->getMessage() . "</p>");
      } else {
       echo("<p>Message successfully sent!</p>");
      }
     ?>
    

    使用SMTP身份验证和SSL加密从PHP发送邮件-示例

    <?php
     require_once "Mail.php";
    
     $from = "Sender <sender@gmail.com>";
     $to = "Recipient <recipient@gmail.com>";
     $subject = "Hi!";
     $body = "Hi,\n\nHow are you?";
    
     $host = "ssl://smtp.gmail.com";
     $port = "465";
     $username = "username@gmail.com";
     $password = "Gmail Password";
    
     $headers = array ('From' => $from,
       'To' => $to,
       'Subject' => $subject);
     $smtp = Mail::factory('smtp',
       array ('host' => $host,
         'port' => $port,
         'auth' => true,
         'username' => $username,
         'password' => $password));
    
     $mail = $smtp->send($to, $headers, $body);
    
     if (PEAR::isError($mail)) {
       echo("<p>" . $mail->getMessage() . "</p>");
      } else {
       echo("<p>Message successfully sent!</p>");
      }
     ?>
    

    源 about.com

 类似资料:
  • 在定点数学中,我使用了大量16位信号,并用32位中间结果进行乘法运算。例如: 假设a是一个q14数,那么c与b的比例相同。 这很好,适用于有符号和无符号算术。 问题是:如果我混合类型会发生什么?例如,如果我知道乘数“a”总是在 0.0 到 1.0 之间,那么很容易使其成为无符号的 int q15 以获得额外的精度(并将移位计数更改为 15)。但是,我从来不明白如果您尝试在 C 中将有符号和无符号数

  • 问题内容: 我找不到任何描述如何使用BC签署CSR的代码/文档。作为输入,我有一个CSR作为字节数组,并且想要获取PEM和/或DER格式的证书。 我已经走了这么远 我很难弄清楚从证书生成器获取的内容以PEM或DER格式存储。 还是我一起走错了路? 问题答案: 好的…我一直在寻找做同样的事情,对于我的一生,我不知道该怎么做。所有的API都在谈论生成密钥对,然后生成证书,而不是如何签署CSR。不知何故

  • 问题内容: 我正在寻找一种检查a的内容以使用MD5哈希对其进行签名的方法。 伪代码可能看起来像这样 那可能吗? 问题答案: 是的,那是可能的。您需要借助以下方法来修饰响应:在其中,您可以用自定义实现替换,该实现将字节写入MD5摘要和“原始”输出流。最后提供一个访问器以获得最终的MD5和。 更新 我只是为了好玩而已,下面是一个启动示例: 响应包装器: MD5输出流: 如何使用它:

  • Git 虽然是密码级安全的,但它不是万无一失的。 如果你从因特网上的其他人那里拿取工作,并且想要验证提交是不是真正地来自于可信来源,Git 提供了几种通过 GPG 来签署和验证工作的方式。 GPG 介绍 首先,在开始签名之前你需要先配置 GPG 并安装个人密钥。 $ gpg --list-keys /Users/schacon/.gnupg/pubring.gpg ----------------

  • 我想用一个新的应用程序包更新我在Play Store上的应用程序(以前我上传APK)。但是当我试图用我用来签名APK的密钥生成签名应用程序包时,Android Studio给我的消息Keystore被篡改,或密码不正确。如何生成签名的应用程序包,以便将其上传到播放控制台? 我表演了清洁 用我用来上传APK的现有密钥生成应用程序捆绑包时,会出现以下错误: 使用此堆栈跟踪: 我如何解决这个问题,我遗漏

  • 我正在尝试使用谷歌办公套件设置SAML。但是我得到了这个错误 我已经配置断言应该在我的SP中签名。我可以在其他IDP(如onelogin、okta)中看到签署响应断言的选项。该配置适用于其他IDP,但看不到在谷歌办公套件SAML中唱响应断言的选项。 在Gsuite中,我只能看到签名响应的选项,而不能看到断言。 如何正确设置此设置? SP元数据如下所示: