使用 msmtp 从命令行发送国际邮件



我创建了以下代码来发送带有 UTF-8 格式的发件人地址的电子邮件。我知道 msmtp 支持 IDN,但是当我运行此程序时,我收到一条错误消息,指出字符xe2x82xac(又名"€")无效。

msmtp: envelope from address reluu20ac@4pu20ac.com not accepted by the server
msmtp: server message: 555 5.5.2 Syntax error. p83sm6227819wma.18 - gsmtp
msmtp: could not send mail (account default from /usr/local/etc/msmtprc)

这是代码:

#include <stdio.h>
int main(){
    char* sender = "reluxe2x82xac@4pxe2x82xac.com";
    char cmd[100];
    sprintf(cmd, "echo "bla" | msmtp -f %s example@domain.com", sender);
    system(cmd);    
    return 0;
}

似乎您的环境不明白您正在赋予它复杂的字符。确保将字符解析为 unicode。如果你尝试将 unicode 值解析为 ascii,你会得到一些非常奇怪的结果。

您可能需要考虑使用 wchar_t 而不是 char*。

相关内容

  • 没有找到相关文章

最新更新