2

自分の OCaml コードでメールを送信したい。

電子メールは HTML 形式になるため、MIMEContent-Type: Multipart/Alternative.

私のサーバーでは、電子メールの smtp サーバーは自分でセットアップし、プライベートのままです。つまり、認証などは必要ありません。私の ocaml コードは接続して html メールを送信できる可能性があります。


私の質問は、OCaml でこの送信メール コードを記述する方法ですか? どのライブラリを使用すればよいですか?


http://docs.camlcity.org/docs/godipkg/4.00/godi-ocamlnet/lib/ocaml/pkg-lib/smtp/netsmtp.mliNetsmtp )から検討しましたが、を設定できないようです.OCamlNetMIMEContent-Type: Multipart/Alternative

他の提案はありますか?

4

2 に答える 2

4

Ocamlnet/NetSendMail を使用

let s_html = "<html>...</html>";;

let body = (Netsendmail.wrap_attachment ~content_type:("text/html", [])
                                        (new Netmime.memory_mime_body s_html))::[];;

let email = Netsendmail.wrap_mail
        ~from_addr:fa
        ~to_addrs:ta
        ~out_charset:`Enc_utf8
        ~subject:subject
               (
                Netsendmail.wrap_parts 
                ~content_type:("multipart/mixed",[])
                body);;

 Netsendmail.sendmail ~mailer:"/usr/sbin/sendmail" email;;

個別のパーツを追加できます:

let add_part other_parts =  (Netsendmail.wrap_parts ~content_type:("multipart/mixed",[]))@other_parts
于 2013-06-18T07:07:53.980 に答える
0

SMTP プロトコルでは、メッセージの本文とヘッダーは DATA コマンドで送信されるため、ヘッダーと本文を同じ文字列で偽造し、Netsmtp ライブラリを使用して data コマンドで送信できます。

let email_header = "\
From: John <john@example.com>\r\n\
To: Rob <rob@example.com>\r\n\
Subject: Hello\r\n\
Content-Type: Multipart/Alternative" in
let email_msg = "<h1>Hi Rob</h1>" in
let data = email_header ^ "\r\n\r\n" ^ email_msg;
于 2013-06-18T00:33:52.940 に答える