我试图用Sendgrid发送我的第一封电子邮件:
$sendgrid = new SendGrid('username', 'xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx');
$email = new SendGrid\Email();
$email->addTo("email1@gmail.com")
->setFrom("email@domain.com")
->setSubject("Sending with SendGrid is Fun")
->setHtml("and easy to do anywhere, even with PHP");
这是我遇到的错误:
PHP致命错误:未捕获的异常' SendGrid \ Exception'与消息 ' {"错误":["错误的用户名/密码"],"消息":"错误"}'
而不是'用户名'和' xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx'我当然使用Sendgrid设置中的真实API密钥信息:
我使用了创建API密钥后提供的长字符串密钥。但这条线似乎还有问题: $ sendgrid =新的SendGrid('用户名',' xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx');
我应该从哪里获取授权信息,以免我收到错误的用户名/密码错误?
答案 0 :(得分:8)
另一个可能的答案是只将api键传递给SendGrid()构造函数;
$sendgrid = new SendGrid('xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx');
$email = new SendGrid\Email();
$email->addTo("email1@gmail.com")
->setFrom("email@domain.com")
->setSubject("Sending with SendGrid is Fun")
->setHtml("and easy to do anywhere, even with PHP");
答案 1 :(得分:3)
而不是使用'用户名'这是API密钥的名称,请尝试使用您的SendGrid用户名(用于登录仪表板的用户名等)。
编辑:为了使其工作,也使用Sendgrid密码而不是API密钥。这对我有用。
编辑2:虽然这解决了问题,但应该只使用所选答案中提到的api密钥。