Open an email template

If you want to provide an easy way for someone to contact you, this snippet aims to open an email template in the system default email program.

To use the code in a help file - which may be useful for developers to collect feedback - you would insert an action and define the action helper as the procedure file containing the ComposeAnEmail() function.

function Demo()
    NewPanel
    Button button1,pos={10,10},size={20,15},title="",Picture=ProcGlobal#pMail, Proc=ButtonProc
    Button button1,help={"Email the developer"}
end

function ButtonProc(STRUCT WMButtonAction &s) : ButtonControl
    if (s.eventCode == 2) // mouseup
        ComposeAnEmail()
    endif
    return 0
end

function ComposeAnEmail([string user, string domain, string subject, string body])
    domain = SelectString(ParamIsDefault(domain), domain, "uni-ingolstadt.de")
    user = SelectString(ParamIsDefault(user), user, "victor.frankenstein")
    subject = SelectString(ParamIsDefault(subject), subject, "Message from an Igor Pro user")
    body = SelectString(ParamIsDefault(body), body, "Type your message here")
    user = URLencode(user)
    domain = URLencode(domain)
    subject = URLencode(subject)
    body = URLencode(body)
    string cmd = ""
    sprintf cmd, "mailto:%s@%s?subject=%s&body=%s" user, domain, subject, body
    BrowseURL/Z cmd
   
    return V_flag
end

// PNG: width= 198, height= 48
Picture pMail
    ASCII85Begin
    M,6r;%14!\!!!!.8Ou6I!!!#=!!!!Q#R18/!(p&k=TAF%&TgHDFAm*iFE_/6AH5;7DfQssEc39jTBQ
    =U#;&M85u`*!mG5Nmir1#)n>FO/#6h#UA#F,q6:(,?!iI#lEYSod*Qq$@KU,Mh.,7X&l;B/R$c`uC#
    XWF=hJfM_\:TX.;b+[C^qj#rIg<`,cbt$BeAV:SrIbT9(Q#>B5PfiDUIc)O&-0Lb3$a5e5hC.+rV@6
    ^0/&,k[^Wa9l-h$$ZA`TX$UG=:!)P;7!W9"9e'h6WLUj_Oo6Fpgein`uo_X&7//APB[9=85+oQk^&4
    3%()H9]Gr0W(><)k65VL];q(IEYg?pGDp$2d"
780!8uJ<W[&^lKf*V,Sq,TGqEDQN%B25dae7A=Cai
    ZIpeg(rJ&srr)`aHF6qqa,_<N(rk(?V8J6OL,E4HeR2\ST<@KY)u'+$U$F`pR7mU9jBl)m(A@LsVmb
    p&cC@fq4[!4hCFb]nE;I40UMN%V4ot^P;8hGP+TUH^jTVq@UXa)_G\Gs2eS7C9jmbor_o"iXDJfLUB
    FS'X1`EX"
6_i$7qCk7.ND?AR!9j1S\@fJ]i7Qf=MaaCS[9D5;gU!Q_]Y#6!:2<,dq=A7BH<bEn:tRu
    _cR9`r/#"FqE-+.3aQ&pAB]H!=6rA']7hiqpiG_-R<ZTaO)tj`?<%9dcS5?"ZWL<X\;Q8=,E'iN\%d
    TQ4(r3(Igt^]Cki`:;1i_/F*$$'Yk2p9Y`fNfhTW5#'>L[Vr:oLD:;9T:Z"oop48R,P,71oh5`RWKR
    P0)e?n!-Qn,E'GG`?KG,[lD5)U5?c\'Jr\*_,2bM2dl^6_Vk_,ROI.Q.$i1Q(dKosZs#%$*$"
a*JgL
    ga3!sT`$3n;cEH#k.MFKm/[+fEtrh,nj1CfG^]=<Rrr52A_('+F&G!#2b_iCHn/Gb*Q-B'oD$?%^:$
    t.R5/hScr3.`,Nd5f/kMMmCNPr+4LiSZ,sceL2S2NCcJX6anb<MH,m!tL@.T.C*IR)[Nk[o\<:21/R
    b$CW)WE"r:_@2M6`35U?#-3tS2Ktgat#/J7;f:9a=6;`u_;:)BW#=ma&QA,FAAjXf..4UTTW#EQ'E,
    ZMlM'jtWIrU-]puE,REGuVmMe=^DIrId^"
cXT`3/Z8+;])SeK>W]nl<+f+^DqChnJ$^lRa<l#[9Ch\
    S`9GCqmYncE^EX(eSo\T#1GCl3G(KbRO52@YF2RO)ND;ni.U+dqE!,KLiPV1@@AOgcHaG=ifPJmc"7
    WHU&Z%h-km#k)?oHn;mY/1,Y8!QNIup/T?g`m^OQ:O\diltp@mQ+r.udTlodcuSOU;!7kU,qV,E]h#
    7Ets;F)q%6bQg8i6X;4</lK`@X!#4\Qj#ec7o]^e!qVKb@,U=f<Ut-n30L_YkJjrF;bZ#&*&!k-'Lp
    P31Ngl$"
bNJZ/DQ]X.ec<S5;o1_(C[M'CAI?_f>IAV-m+6P<Hl1$5t935C`ZcBpp_M'>K"pH4pGk`K
    <on!JFrb2%'SI'+T@0gmifP3;cJPU\g?dF)r"
Erqq<i#d/>mMo*2hVJ2?#K$rD_oQn4@2CB3&=nX]?
    E&beeeeVS!?`.3\PtH,J_$u9)q`&0<.G89.ispi3I/3>E]M8`(\Cr\"=fBBFUQ?a8-48[<cZ+D_52O
    lVodhN:cd,mFURfM;nF5oYk_+<q'EGc.@)YhBk<4SbRCgLITr?T/F5>aHn)(m)IX[$SlZdl-"
p"#Vl
    p-kJm-O)sh7Im6hogJ>\(dKafcFX#'U,55Yhq5pT?f/iLIHM!hIEcG(CVrnfJ=KW!PnBTKp>)G/-Ec
    t'Wg<qQES3=3&h=i>S!Z)e&9AMM5MbP;+"
H_0`][8X(o$\:/4Q3),BsX!q<?&Hs#K)>f!']mdBKCG_
    a/ZfQ#^&h0G$u0,.`Ij7"BO@71,"NLr2)J:`O9=?^Z?L_:%55B'!s"V&MW>T@0?&I"/\3224\L>uAu
    9GgVr6/r-/.&3Ho3#9[ON,H+_j5]/jUS)&S3'KMq\(dIaDn"J\4:2uS*,b&GY-Ge+om/S\4iRBu4b1
    qtihMB_L>pkBh?Eu8hr!Jdo[NGK]03i6&%B$WQ>KJf6,UQZH[GX%*S*4W8WlWBdt&p)q!d6p"
\"rQg
    raq&jgT0cnG;tg8WosB_`+!^UR99,Wr`#4I%tKl$3^F)^QNS*!K@"
elFLlt3U!s/Zj*VM#mJ-43I%E
    bBJu>jnq$91ctkUMrSVnNk:N%Dbhjtj\IP^eqr>^-hI?Q$?n`^\U(E941UVCaU*sP+(m%Xp'_np9]p
    ),863mU!#W;fO85*>XZqd=HI0bFd&-O08k,7-WNN/ui"G-:_s%e4X!WX&ILVtkTkdlepa2^+dUJ[$s
    8LP8[OC]<_Cj+SNb2kC/Is%t+1ZB<6>dW*kh=EkH<Y\a%>gqO0!!!!j78?7R6=>B
    ASCII85End
end

I haven't tested this much so I'd appreciate feedback on whether it works on various systems.

Works okay with Mac 11.7.9 (Big Sur) and Thunderbird.

You should be able to use BrowseURL instead of ExecuteScriptText. Inserting body text should be easy as well...just use something like

sprintf cmd, "mailto:%s@%s?subject=%s&body=%s" user, domain, subject, body

Each field (user, domain, subject, body) should likely be passed through URLEncode first. You are already encoding spaces in the subject but other non-ascii characters also need to be encoded.

 

IIRC, Gmail users will need to click a button in the location bar in order for mailto links to use Gmail.

Ah, thanks, I should have thought of that. BrowseURL makes it trivial.

Forum

Support

Gallery

Igor Pro 9

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More