0
次のコードを作成して、UTF-8形式のアドレスセットで電子メールを送信しました。私はmsmtpがIDNサポートを持っていることを知っていますが、このプログラムを実行すると、文字\xe2\x82\xac
(別名「€」)が無効であるというエラーメッセージが表示されます。msmtpでコマンドラインから国際メールを送信する
msmtp: envelope from address relu\[email protected]\u20ac.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 = "relu\xe2\x82\[email protected]\xe2\x82\xac.com";
char cmd[100];
sprintf(cmd, "echo \"bla\" | msmtp -f %s [email protected]", sender);
system(cmd);
return 0;
}
実際には、私はprintf( "%s \ n"、送信者)を使用します。アドレスをコンソールに正しく出力します( 'ユーロ'文字を表示します)。 –